True exactly-once delivery is impossible in distributed systems. Network failures make it unprovable whether a message was processed.
What "exactly-once" really means:
- Idempotent producer: Broker deduplicates retries
- Transactional consumer: Process and commit atomically
- Combined effect: Exactly-once processing (not delivery)
Kafka's approach:
Producer ID + sequence number for deduplication. Transactions for atomic read-process-write. The system behaves as if exactly-once, even though retries happen.