11 min
@Transactional Won't Save Your Kafka Publish
The dual-write bug survives @Transactional, and it quietly loses money. Here is the architecture that fixes it at a million transactions a second — a hash-partitioned outbox on Oracle, SKIP LOCKED relays and Kafka, in Java 21 and Spring Boot — plus some honest scrutiny of the numbers.