Skip to content
Kafka Is FunProgress

Lesson 3 of 3

Exactly-Once Semantics (EOS)

Messages are delivered and processed exactly once, end-to-end. Producer-side EOS: enable.idempotence=true prevents duplicates within a session. Transaction EOS: transactional.id enables atomic writes across partitions. Kafka Streams EOS: processing.guarantee=exactly_once_v2 (default in 3.0+) uses transactions internally to atomically read → process → write → commit offsets. Full EOS requires all three layers working together.

Key configuration

broker / client configurationproperties
enable.idempotence=true — producer side
transactional.id=unique-producer-id — transactions
processing.guarantee=exactly_once_v2 — Kafka Streams
isolation.level=read_committed — consumer side

Try it in the simulator

Guided scenarios for this module — the simulator opens with the exercise already running.