Skip to content
Paolo Patierno edited this page Apr 12, 2016 · 9 revisions

Following the Sequence Diagrams for the sending operation by AMQP sender clients.

Sender : settled mode

In this scenario the AMQP sender specifies the snd-settle-mode as settled so it sends every message with the settled flag to true. The source bridge endpoint sends the message itself to the Kafka server and it doesn't care any feedback from it. We can consider it an AT MOST ONCE delivery.

The internal Kafka Producer is configured to use acks parameter with value 0 so that it doesn't wait for any feedback from the Apache Kafka server. The internal AMQP receiver link uses prefetching for flow control. The link credits are configurable using the bridge.properties configuration file.

Sender : unsettled mode

In that case the AMQP sender specifies the snd-settle-mode as unsettled so it sends every message with settled flag to false. The source bridge endpoint sends the message to the Apache Kafka server and then it waits for an acknowledgment in order to send a disposition with info on message settled and the related delivery status (ACCEPTED or REJECTED).

The internal Kafka Producer is configured to use acks parameter with value 1 or all so that it waits acknowledgement from Kafka server (if message is got only by leader or by all related replicas). The internal AMQP receiver link uses no prefetch but manual flow control. For each acknowledgement received from the Kafka server, it updates the link credits accordingly.

Sender : mixed mode

In that case the AMQP sender specifies the snd-settle-mode as mixed so it can mix the above behavior for each single message. The internal AMQP receiver link is configured as the "unsettled mode" with manual flow control due to different behavior for each message.

Clone this wiki locally