The document discusses common pitfalls or "sins" of workflow implementation, including relying on zero-code suites, building a homegrown workflow engine, using no engine, the wrong engine, improper granularity, creating a monolithic BPM system, overengineering workflows, and violating microservice boundaries. It advocates using a state machine-based approach to address challenges like handling time/timeouts, retries, distributed transactions, and message correlation in a developer-friendly way that is composable for both BizDev and Ops teams.
8. Service A
Challenge: Synchronous collaboration
Call
service B
Service B
The network is unreliable
Hystrix adds circuit
breaker & fail fast
Retry capability missing
9. Service A
Challenge: Asynchronous collaboration
Send
message
to B
Service B
Wait for
response
Timeout handling
Message correlation
State handling
11. 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
41. The 7 sins of workflow
Zero-code suites
Homegrown
engine
Granularity
bloopers
BPM monolith Stakeholders
habitat violation
Over engineering
No engine Wrong engine Wrong usage