In the development of microservices, sooner or later everyone comes across business processes that involve several services, and usually, in DDD terminology, several bounded contexts. Different approaches to implementing such processes lead to fundamentally changed outcomes. With consequences for the complexity, and thus for the operation and expandability of the system. Especially when event-driven architecture is applied, its asynchronous nature often collides with the desire for global control and synchronous responses. This can lead to “chimeras” that combine the “worst of both worlds”.
In this talk, he will look at some principles of event-driven architecture. He’ll explore how they relate to possible approaches to implementing complex processes. Special consideration will be given to boundaries of responsibility, and the relationship of processes and data.
A common pitfall in the event-driven world is simply copying workflows from a monolithic application. This can lead to hastily falling back on orchestration or workflow tools, and possibly to a “distributed monolith”. How can we avoided this? The talk will introduce the idea of “micro-workflows” and explore how challenging and redesigning complex processes can lead to better systems. And finally, we’ll ask the question: Should the Saga pattern be considered harmful?