westphal-jan commented on a change in pull request #15140: URL: https://github.com/apache/flink/pull/15140#discussion_r594312807
########## File path: flink-connectors/flink-connector-rabbitmq2/src/main/java/org/apache/flink/connector/rabbitmq2/source/README.md ########## @@ -0,0 +1,63 @@ +# RabbitMQ Source + +Flink's RabbitMQ connector provides a source which enables you to receive messages from a RabbitMQ +queue in three different consistency modes: at-most-once, at-least-once, and exactly-once. + +## Consistency Behaviour +With __at-most-once__, the source will reach each message and automatically acknowledges it to +RabbitMQ. The message content is then polled by the output. If the system crashes in the meantime, +the messages that the source buffers are lost. + +By contrast, the messages in the __at-least-once__ mode are not automatically acknowledged but +instead the delivery tag is stored in order to acknowledge it later to RabbitMQ. Messages are polled +by the output and when the notification for a completed checkpoint is received the messages that were +polled are acknowledged to RabbitMQ. Therefore, the mode requires _checkpointing enabled_. This way, +it is assured that the messages are correctly processed by the system. If the system crashes in the +meantime, the unacknowledged messages will be resend by RabbitMQ to assure at-least-once behavior. + +The __exactly-once-mode__ mode uses _correlation ids_ to deduplicate messages. Correlation ids need +to be set by the user in order for the mode to function. In addition, it requires _checkpointing enabled_ Review comment: Done. ---------------------------------------------------------------- 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. For queries about this service, please contact Infrastructure at: us...@infra.apache.org