AI can help, but we’re still the ones accountable for architectural decisions that can lead to lost messages, duplicates, and other data inconsistencies. In this session, we’ll tackle the dual-write problem, explore the Saga pattern, and compare orchestration vs. choreography strategies for managing distributed workflows. We’ll also dive into the Transactional Outbox and Inbox patterns, showing how we can achieve at-least-once delivery and build idempotent consumers that make our event-driven microservices more resilient, consistent, and reliable. This would be my first time giving a public talk, and I'd be delighted to have it in Sofia. Here's a recording of my presentation: https://drive.google.com/file/d/1Rhd5bo3yTHCDQGpJh3s1QNzyTiNw--u9/view?usp=sharing Target Audience - Backend engineers building event-driven microservices with Spring and dealing with data consistency, messaging, and distributed workflows - Junior and mid-level developers who want to understand the challenges of keeping distributed systems in sync - Architects and tech leads responsible for designing reliable distributed systems Key Takeaways - How can we handle common challenges such as dual writes, lost, out-of-order, and duplicate messages - How to choose between orchestration, choreography, both, or neither - When and how to apply Sagas, Transactional Outbox, and Inbox patterns, including their trade-offs

Talk Level:
INTERMEDIATE

Bio:
Hey there, I'm Emanuel - a Software Craftsman from Romania. I value simplicity and intentionality over blindly applying patterns and abstractions. I care deeply about the design and testability of the software I create. I also value communication and collaboration and enjoy sharing my knowledge through open-source contributions and technical articles.