12. Temporal decoupling with events and read models
Checkout
Payment
Inventory
Shipment
Good
Stored
Read
Model
Good
Fetched
The button blinks if we can
ship within 24 hours
*Events are facts about what happened (in the past)
@berndruecker
16. The danger is that it's very easy to make
nicely decoupled systems with event
notification, without realizing that you're
losing sight of that larger-scale flow, and
thus set yourself up for trouble in future
years.
https://martinfowler.com/articles/201701-event-driven.html
@berndruecker
17. The danger is that it's very easy to make
nicely decoupled systems with event
notification, without realizing that you're
losing sight of that larger-scale flow, and
thus set yourself up for trouble in future
years.
https://martinfowler.com/articles/201701-event-driven.html
@berndruecker
18. The danger is that it's very easy to make
nicely decoupled systems with event
notification, without realizing that you're
losing sight of that larger-scale flow, and
thus set yourself up for trouble in future
years.
https://martinfowler.com/articles/201701-event-driven.html
@berndruecker
19. Monitoring Workflows Across Microservices
https://www.infoq.com/articles/monitor-workflow-collaborating-microservices
@berndruecker
22. Tracking + BI
Checkout Inventory
Payment Shipment
Kafka
Zeebe
Camunda
Optimize
Other reporting
/ BIO solutions
@berndruecker
23. Tracking + BI
Checkout Inventory
Payment Shipment
Kafka
Zeebe
Camunda
Optimize
Other reporting
/ BIO solutions
@berndruecker
24. Tracking + BI
Checkout Inventory
Payment Shipment
Kafka
Zeebe
Camunda
Optimize
Other reporting
/ BIO solutions
This is totally non-invasive
But also limited in power
@berndruecker
32. What we currently build with some customers…
Camunda
Optimize
Elastic
17
Registration
requested
Credit
checked
Address
checked
Customer
registered
@berndruecker
38. Order
Extract the end-to-end responsibility
Checkout
Payment
Inventory
Shipment
*Commands have an intent about
what needs to happen in the future
Payment
received
Order
placed
Retrieve
payment
@berndruecker
39. Order
It is about where to decide about the coupling!
Checkout
Payment
Inventory
Shipment
Order
placed
Retrieve
payment
Order decides
. to listen to the event
. to issue the command
@berndruecker
40. Order
It is about where to decide about the coupling!
Checkout
Payment
Inventory
Shipment
Order
placed
Retrieve
payment
It can still be messaging!
@berndruecker
57. Recap
• In event-driven-systems it is easy to loose sight of the flow
• Visibility is essential to survive
• You need to balance orchestration and chorography
• Distributed systems need stateful orchestration
• Workflow automation is an essential building block
• BPMN is very powerful and provides BizDevOps
• Zeebe rocks :-)
@berndruecker