[ 
https://issues.apache.org/jira/browse/FLINK-24227?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zichen Liu updated FLINK-24227:
-------------------------------
    Description: 
h2. Motivation

*User stories:*
 As a Flink user, I’d like to use Kinesis Data Streams as sink for my data 
pipeline.

*Scope:*
 * Implement an asynchronous sink for Kinesis Data Streams (KDS) by inheriting 
the AsyncSinkBase class. The implementation can for now reside in its own 
module in flink-connectors. The module and package name can be anything 
reasonable e.g. {{flink-connector-aws-kinesis}} for the module name and 
{{org.apache.flink.connector.aws.kinesis}} for the package name.
 * The implementation must use [the Kinesis Java 
Client|https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/kinesis/AmazonKinesisClient.html].
 * The implementation must allow users to configure the Kinesis Client, with 
reasonable default settings.
 * Implement an asynchornous sink writer for KDS by extending the 
AsyncSinkWriter. The implementation must deal with failed requests and retry 
them using the {{requeueFailedRequestEntry}} method. If possible, the 
implementation should batch multiple requests (PutRecordsRequestEntry objects) 
to KDS for increased throughput. The implemented Sink Writer will be used by 
the Sink class that will be created as part of this story.
 * Unit/Integration testing. Use Kinesalite (in-memory Kinesis simulation). We 
already use this in {{KinesisTableApiITCase}}.
 * Java / code-level docs.
 * End to end testing: add tests that hits a real AWS instance. (How to best 
donate resources to the Flink project to allow this to happen?)

h2. References

More details to be found 
[https://cwiki.apache.org/confluence/display/FLINK/FLIP-171%3A+Async+Sink]

  was:
h2. Motivation

*User stories:*
As a Flink user, I’d like to use Kinesis Data Streams as sink for my data 
pipeline.

*Scope:*


 * Implement an asynchronous sink for Kinesis Data Streams (KDS) by inheriting 
the AsyncSinkBase class. The implementation can for now reside in its own 
module in flink-connectors. The module and package name can be anything 
reasonable e.g. {{flink-connector-aws-kinesis}} for the module name and 
{{org.apache.flink.connector.aws.kinesis}} for the package name. Side-note: 
There will be additional work later to move these implementations somewhere 
else (see the[ ongoing 
discussion)|http://mail-archives.apache.org/mod_mbox/flink-dev/202106.mbox/%3ccagznd0ebmgud327_j4gvdyaoygaewxmjz9kzn33fv0v+j8g...@mail.gmail.com%3e].
 * The implementation must use [the Kinesis Java 
Client|https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/kinesis/AmazonKinesisClient.html].
 * The implementation must allow users to configure the Kinesis Client, with 
reasonable default settings.
 * Implement an asynchornous sink writer for KDS by extending the 
AsyncSinkWriter. The implementation must deal with failed requests and retry 
them using the {{requeueFailedRequestEntry}} method. If possible, the 
implementation should batch multiple requests (PutRecordsRequestEntry objects) 
to KDS for increased throughput. The implemented Sink Writer will be used by 
the Sink class that will be created as part of this story.
 * Unit/Integration testing. Use Kinesalite (in-memory Kinesis simulation). We 
already use this in {{KinesisTableApiITCase}}.
 * Java / code-level docs.
 * End to end testing: add tests that hits a real AWS instance. (How to best 
donate resources to the Flink project to allow this to happen?)

h2. References

More details to be found 
[https://cwiki.apache.org/confluence/display/FLINK/FLIP-171%3A+Async+Sink]


> [FLIP-171] KDS implementation of Async Sink
> -------------------------------------------
>
>                 Key: FLINK-24227
>                 URL: https://issues.apache.org/jira/browse/FLINK-24227
>             Project: Flink
>          Issue Type: New Feature
>          Components: Connectors / Common
>            Reporter: Zichen Liu
>            Assignee: Zichen Liu
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.15.0
>
>
> h2. Motivation
> *User stories:*
>  As a Flink user, I’d like to use Kinesis Data Streams as sink for my data 
> pipeline.
> *Scope:*
>  * Implement an asynchronous sink for Kinesis Data Streams (KDS) by 
> inheriting the AsyncSinkBase class. The implementation can for now reside in 
> its own module in flink-connectors. The module and package name can be 
> anything reasonable e.g. {{flink-connector-aws-kinesis}} for the module name 
> and {{org.apache.flink.connector.aws.kinesis}} for the package name.
>  * The implementation must use [the Kinesis Java 
> Client|https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/kinesis/AmazonKinesisClient.html].
>  * The implementation must allow users to configure the Kinesis Client, with 
> reasonable default settings.
>  * Implement an asynchornous sink writer for KDS by extending the 
> AsyncSinkWriter. The implementation must deal with failed requests and retry 
> them using the {{requeueFailedRequestEntry}} method. If possible, the 
> implementation should batch multiple requests (PutRecordsRequestEntry 
> objects) to KDS for increased throughput. The implemented Sink Writer will be 
> used by the Sink class that will be created as part of this story.
>  * Unit/Integration testing. Use Kinesalite (in-memory Kinesis simulation). 
> We already use this in {{KinesisTableApiITCase}}.
>  * Java / code-level docs.
>  * End to end testing: add tests that hits a real AWS instance. (How to best 
> donate resources to the Flink project to allow this to happen?)
> h2. References
> More details to be found 
> [https://cwiki.apache.org/confluence/display/FLINK/FLIP-171%3A+Async+Sink]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to