{"repo":"KHolodilin/spring-transactional-outbox-kafka","free":true,"listed":false,"github":"https://github.com/KHolodilin/spring-transactional-outbox-kafka","clone":"git clone https://github.com/KHolodilin/spring-transactional-outbox-kafka.git","description":"Production-ready Transactional Outbox Pattern for Spring Boot 4 with Kafka and PostgreSQL, featuring idempotency, batch publishing and an optimized low-polling architecture for high-throughput event delivery.","language":"Java","stars":17,"topics":["kafka","outbox","postgresql","spring-boot","transactional-outbox-pattern","outbox-pattern","transactional-outbox","grafana","grafana-dashboard","grafana-prometheus"],"license":"Apache-2.0","category":"data-pipelines","readme_excerpt":"Transactional Outbox Pattern with Kafka and PostgreSQL Production-oriented Transactional Outbox for Spring Boot 4, PostgreSQL, and Kafka, combining low-latency event delivery, durable recovery, and reduced database polling. 💡 Why this project? There are several well-established ways to implement the Transactional Outbox pattern. Each approach solves the same reliability problem, but with different trade-offs in latency, operational complexity, infrastructure, and database load. This project targets teams already using Spring Boot, PostgreSQL, and Kafka that want low-latency event delivery without continuous database polling or an additional CDC platform. ⚖️ Comparison Approach ✅ Pros ⚠️ Cons ---------- ---------- ---------- Database Polling ✅ Simple to understand ✅ Works with almost any relational database ✅ Easy to implement ❌ Continuously polls the database ❌ Additional latency between commit and publishing ❌ Database load grows with polling frequency PostgreSQL LISTEN / NOTIFY ✅ Near real-time notifications ✅ Built into PostgreSQL ✅ No polling during normal operation ⚠️ Notifications are not durable ⚠️ Recovery scanning is still required after failures ⚠️ PostgreSQL-specific solution Debezium (CDC) ✅ Reliable Change Data Capture ✅ No application polling ✅ Excellent for large event-driven platforms ❌ Requires Kafka Connect and Debezium infrastructure ❌ Higher operational complexity ❌ Event publishing is managed outside the application Memory Queue + Recovery (this project)","default_branch":null,"files":null,"tree":[],"storefront":"/r/KHolodilin","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/KHolodilin/spring-transactional-outbox-kafka/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}