infoverload commented on code in PR #517:
URL: https://github.com/apache/flink-web/pull/517#discussion_r861494550


##########
_posts/2022-03-16-async-sink-base.md:
##########
@@ -0,0 +1,160 @@
+---
+layout: post
+title: "The Generic Asynchronous Base Sink"
+date: 2022-04-05 16:00:00
+authors:
+- CrynetLogistics:
+  name: "Zichen Liu"
+excerpt: An overview of the new AsyncBaseSink and how to use it for building 
your own concrete sink
+---
+
+Flink sinks share a lot of similar behavior. All sinks batch records according 
to user defined buffering hints, sign requests, write them to the destination, 
retry unsuccessful or throttled requests, and participate in checkpointing.
+
+This is why for [Flink 
1.15](https://cwiki.apache.org/confluence/display/FLINK/FLIP-171%3A+Async+Sink) 
we have decided to create the `AsyncSinkBase`, an abstract sink with a number 
of common functionalities extracted. Adding support for a new destination now 
only requires a lightweight shim that implements the specific interfaces of the 
destination using a client that supports async requests. 
+
+This common abstraction will reduce the effort required to maintain individual 
sinks that extend from this abstract sink, with bugfixes and improvements to 
the sink core benefiting all implementations that extend it. The design of 
AsyncSyncBase focuses on extensibility and a broad support of destinations. The 
core of the sink is kept generic and free of any connector-specific 
dependencies.
+
+The sink base is designed to participate in checkpointing to provide 
at-least-once semantics and can work directly with destinations that provide a 
client that supports asynchronous requests. Alternatively, concrete sink 
implementers may manage their own thread pool with a synchronous client.
+
+{% toc %}
+
+# Adding the base sink as a dependency
+In order to use the base sink, you will need to add the following dependency 
to your project. The example below follows the Maven syntax:
+
+```xml
+<dependency>
+  <groupId>org.apache.flink</groupId>
+  <artifactId>flink-connector-base</artifactId>
+  <version>${flink.version}</version>
+</dependency>
+```
+
+
+
+# The Public Interfaces of AsyncSinkBase
+
+## Generic Types
+
+`<InputT>` – type of elements in a DataStream that should be passed to the sink
+
+`<RequestEntryT>` – type of a payload containing the element and additional 
metadata that is required to submit a single element to the destination
+
+
+## Element Converter Interface
+[ElementConverter](https://github.com/apache/flink/blob/master/flink-connectors/flink-connector-base/src/main/java/org/apache/flink/connector/base/sink/writer/ElementConverter.java)

Review Comment:
   ```suggestion
   ## Element Converter Interface
   
   
[ElementConverter](https://github.com/apache/flink/blob/master/flink-connectors/flink-connector-base/src/main/java/org/apache/flink/connector/base/sink/writer/ElementConverter.java)
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@flink.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to