Learn where Kafka exactly-once semantics stop, why database side effects still need idempotency, and how to combine a PostgreSQL outbox with an idempotent Spring Kafka consumer.
Persist external-call intent with business data, claim work safely across replicas, classify retries, handle ambiguous HTTP outcomes, and use Kafka only through a durable outbox or CDC boundary.
Design a recoverable Spring Kafka consumer by classifying failures, bounding retries, preserving record context, making database effects idempotent, testing rebalances and poison records, and rehearsing DLT replay.