11. It is not SOA
InventoryPayment ShippingCheckout
Bus
Order
Placed
Does not
know
recepient
Does not
know
sender
Event: Fact that
happened in the past,
Immutable fact,
0..n recepients
Order
Placed
Smart endpoints
and dumb pipes
14. Service A
Challenge: Asynchronous collaboration
Send
message
to B
Service B
Wait for
response
Timeout handling
Message correlation &
deduplication
State handling
Parallelism & merging
15. Challenge: Distributed transactions
1. book
hotel
2. book
car
3. book
flight
6.
cancel
hotel
5.
cancel
car
4. In case of
failure trigger
compensations
book
trip
Service A
Car ServiceHotel Service Flight Service
ACID-Transactions
only local in the
service contexts
Distributed
transaction via Saga
pattern using
compensating
activities
19. Toolbox for distributed systems
Handling of time &
timeouts
Retry
Versioning
Compensation & Saga
Message correlation &
deduplication
Performance &
scalability
20. The microservice community
*Picture randomly taken from http://wareflo.com/2016/11/from-apis-to-microservices-workflow-orchestration-and-choreography-across-healthcare-organizations/. Not connected to statements on slide.
Orchestration…
…introduces single point of
failure…
…leads to god services…
…leads to tight coupling…
„
22. End-to-end processes using eventflows?
InventoryPayment ShippingShop
Order
placed
Payment
received
Goods
fetched
Goods
shipped
23. Commanding is important
InventoryPaymentOrder ShippingShop
Bus
Order
Placed
Event: Fact that
happened in the past,
Immutable fact,
0..n recepients
Order
Placed
Command: Intend,
1 recipient.
Coupling the other
way round
Retrieve
Payment
Fetch
Goods
Ship
Goods