Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does Debezium provide delivery and ordering guarantees?

I am planning to use debezium 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

like image 433
H.Ç.T Avatar asked Sep 06 '25 03:09

H.Ç.T


1 Answers

Delevery Sematincs

debezium 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

debezium 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?

like image 85
Iskuskov Alexander Avatar answered Sep 07 '25 21:09

Iskuskov Alexander