Bernd Rücker
Passionate about developer-friendly
workflow automation technology.

Talk

Complex event flows in distributed systems

Event-driven architectures enable nicely decoupled microservices and are fundamental for decentral data management. However, using peer-to-peer event chains to implement complex end-to-end logic crossing service boundaries can accidentally increase coupling. Extracting such business logic into dedicated services reduces coupling and allows to keep sight of larger-scale flows - without violating bounded contexts, harming service autonomy or introducing god services. Service boundaries get clearer and service APIs get smarter by focusing on their potentially long running nature. I will demonstrate how the new generation of lightweight and highly-scalable state machines ease the implementation of long running services. Based on my real-life experiences, I will share how to handle complex logic and flows which require proper reactions on failures, timeouts and compensating actions and provide guidance backed by code examples to illustrate alternative approaches.

Article

Events, Flows and Long-Running Services: A Modern Approach to Workflow Automation

If you have been following the recent discussions around the microservice architectural style, you may have heard this advice: "To effectively decouple your (micro)services you have to create an event-driven-architecture". The idea is backed by the Domain-Driven Design (DDD) community, by providing the nuts and bolts for leveraging domain events and by showing how they change the way we think about systems. Although we are generally supportive of event orientation, we asked ourselves what risks arise if we use them without further reflection. To answer this question we reviewed three common hypotheses...

Read more...

Upcoming gigs:

{{ item['fields']['Name'] }} {{ item['fields']['Location'] }}
{{ item['fields']['Talk-Date'] }}

Recently delivered at:

{{ item['fields']['Name'] }} {{ item['fields']['Location'] }}
{{ item['fields']['Talk-Date'] }}