Search code examples
postgresqlapache-kafkaapache-kafka-connectdebezium

Does Debezium provide delivery and ordering guarantees?


I am planning to use for producing events to Kafka and I need strong delivery and ordering guarantees. By using enable.idempotence=true paramater in producer config I can have these guarantees.

My questions are:

  1. How can I achieve this with debezium?
  2. Is these guarantees provided by default?
  3. Is it configurable? How?

Note: I am planning to use Debezium Connector for PostgreSQL


Solution

  • Delevery Sematincs

    guarantees at-least-once delivery:

    When all systems are running nominally or when some or all of the systems are gracefully shut down, then consuming applications can expect to see every event exactly one time. However, when things go wrong it is always possible for consuming applications to see events at least once.

    Source: Why must consuming applications expect duplicate events?


    Ordering Guarantees

    has strong ordering guarantees:

    Most connectors will record all events for a single database table to a single topic. Additionally, all events within a topic are totally-ordered, meaning that the order of all of those events will be maintained. (Even if events are duplicated during failures, the end result after applying all of the events will remain the same.)

    Source: How are events for a database organized?