[IBM MQ Advanced VUE][MQ 9.3.4 Oct 2023][IBM MQ Advanced for z/OS][IBM MQ Advanced]

Exactly once support

There are two versions of the IBM® MQ Kafka Connectors, 1 and 2. The version 2 connectors provide support for exactly-once and at-least-once message delivery, whereas the version 1 connectors provide support for at-least-once message delivery.

At-least-once message delivery means that in the event of a failure, in either IBM MQ, the IBM MQ Kafka Connector, or Kafka:
  • For the source connector, IBM MQ messages are not lost, but might be delivered to Kafka multiple times resulting in duplicate Kafka messages.
  • For the sink connector, Kafka messages are not lost, but might be delivered to IBM MQ multiple times resulting in duplicate IBM MQ messages.
Exactly-once message delivery means that in the event of a failure, in either IBM MQ, the IBM MQ Kafka Connector, or Kafka:
  • For the source connector, IBM MQ messages are not lost, and will be delivered to Kafka with no chance for duplicate Kafka messages.
  • For the sink connector, Kafka messages are not lost, and will be delivered to IBM MQ with no chance for duplicate IBM MQ messages.

Exactly-once support is only available in the version 2 connector shipped with IBM MQ, or with IBM Event Streams. It is not available in the version 1 connector.

The version 2 connector can run in either at-least-once or exactly-once mode. Exactly-once support is enabled by appropriate configuration of Kafka, and by making use of a "state queue". Each instance of a connector running in exactly-once mode needs its own state queue.

Throughput and scalability of the connectors running in exactly-once mode are less than running in at-least-once mode. Only enable exactly-once mode if your applications aren't designed to work with duplicate messages.

See Running the MQ source connector for details on configuring exactly-once mode in the source connector, and Running the MQ sink connector for details on configuring exactly-once mode in the sink connector.