Let your domain events flow
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?