Hi all,

I would like to start a discussion around moving the current Cassandra Sink
in Flink
<https://github.com/apache/flink-connector-cassandra/tree/main/flink-connector-cassandra/src/main/java/org/apache/flink/streaming/connectors/cassandra>
to
Sink V2. It is built on the deprecated RichSinkFunction API
<https://nightlies.apache.org/flink/flink-docs-release-2.0/api/java/org/apache/flink/streaming/api/functions/sink/legacy/RichSinkFunction.html>,
lacks Table/SQL support, has minimal retry handling, and does not align
with Flink’s async/threading model.
Proposal Overview

The plan is to reimplement the sink using Flink's Sink V2 API in two phases:

   -

   *Phase 1:* Introduce a modular, config-based sink supporting multiple
   input formats, mailbox-thread-safe async writes, and configurable retries,
   laying the foundation for future batching.
   -

   *Phase 2:* Once Flink 2.1 is available (with FLIP-509
   
<https://cwiki.apache.org/confluence/display/FLINK/FLIP-509+Add+pluggable+Batching+for+Async+Sink>),
   we’ll extend this with a new async sink that supports partition-aware
   batching, optimizing for Cassandra's write semantics. (Jira Ticket
   <https://issues.apache.org/jira/browse/FLINK-26821>)

For full details, please refer to this document
<https://docs.google.com/document/d/1A11OZRJBFlysx3GxFmHBL1PWk-4j6LKDacN_LpdaoyY/edit?tab=t.0>
.

Thanks,
Poorvank

Reply via email to