Abstract
Microservices, DDD, distributed systems, serverless. All trends decompose to the max, which moves the complexity to the collaboration of these pieces. I want to tell some war stories around that in this talk and give people some guidance. How can you implement complex end-to-end use cases (e.g. a customer order) when you have a bunch of nicely decoupled (micro-)services (e.g. checkout, payment & shipping)? How do the services collaborate? Synchronous or asynchronous? Choreographed using event-chains? Orchestration using frameworks like Netflix Conductor? In this talk, I discuss different alternatives and show how to handle long running processes and requirements around state, error handling, timeouts, distributed transactions or compensation. I discuss how you can ensure visibility and provide status and error monitoring. Expect live hacking leveraging lightweight open source frameworks like Zeebe.io. I will share our experiences from real-life projects.