In this talk we demonstrate the idea of Sagas and process managers to control a flow of domain events across transactional aggregate and context boundaries. We will not just use slides but explore runnable code available on GitHub. We will use lightweight open source frameworks like Spring, Apache Kafka and Camunda. We will answer concrete questions like: How can a process manager be implemented without reinventing the wheel? How does it support complex flow logic requiring timeouts, proper reactions on errors and compensating actions? We will also discuss design questions: How can we anchor the flow logic in the ubiquitous language? How can we make it transparent to domain experts and maintainable for developers? And how can whole end-to-end business processes be modeled in harmony with DDD principles including the bounded context?
Decoding Paradoxes: Why are many good ideas in Software Delivery counter-intuitive
How does deploying more frequently improve quality? How does slack time in a team improve reliability? Why should we do it more often if it hurts? These are counter-intuitive concepts that don't make sense at first, and you'll be met with a bewildered stare...