Menu

1 / 4

Kafka Exactly-Once Semantics: The Payment Bug Our Staff Engineer Almost Missed

JavaScript in Plain English - Medium·Devrim Ozcay | Founder, ProdRescue·about 4 hours ago
#YWQjBGFA
Reading 0:00
15s threshold

Press enter or click to view image in full size

Kafka Exactly-Once Semantics: The Payment Bug Our Staff Engineer Almost Missed

Our Kafka transactions were working perfectly. The payment provider was processing requests correctly. Somehow, we still managed to charge the same customer twice.

Devrim Ozcay | Founder, ProdRescue

10 min read15 hours ago

--

The first duplicate payment arrived at 10:42 on a Thursday morning, which was inconvenient because our engineering team had spent the previous Wednesday celebrating the successful rollout of Kafka exactly-once processing. We’d upgraded the consumers, enabled transactions, reviewed the producer configuration, and added enough integration tests to make the CI pipeline reconsider its career choices.

Everything looked good. Kafka transactions were committing successfully, consumer offsets were advancing as expected, and our payment service had been running without significant errors.…

Continue reading — create a free account

Join HashtagPLUS to read full articles, follow hashtags, vote, and join the conversation.