Slides from my talk at Eureg JUG Aachen in February 2018. You can find the recoding here: https://youtu.be/hS-4hjeFjt0. Code is available: http://github.com/flowing/flowing-retail and https://github.com/flowing/flowing-retail/tree/master/payment-rest.
6. A simple workflow example
Human task
management
Service
collaboration
Events , e.g.
timers
* Modeled in BPMN
= ISO Standard for modeling and execution
26. Compensation
Saga-Pattern
Manigfold Use Cases for Workflow Automation
Business
short running
(milliseconds)
potentially long running long running
IT
Automation of
business processes
(STP, Human Task
Management,
BPM)
Business
Transactions
Communication in
distributed systems
Decision
Automation
Order / Application Management
Invoice Management / Billing
Inbound / Outbound Management
Approval
Stateful retries
Correlate asynchronous responses / events
Sequence of decoupled service calls
Timeouts
Approval
Fraud check
Risk check
Fee calculation
Motivated by
Microservice
Orchestration
45. The 7 sins of workflow
Zero-code suites
Homegrown
engine
Granularity
bloopers
Over engineering
No engine Wrong engine Wrong usage
6
Stakeholders
habitat violation
46. The 7 sins of workflow
Zero-code suites
Homegrown
engine
Granularity
bloopers
BPM monolith
Over engineering
No engine Wrong engine Wrong usage
Stakeholders
habitat violation
47. BPM architecture - the traditional view
BPM This is an Anti-Pattern in
microservice architectures!
60. New kid on the block
https://zeebe.io/
Zeebe
Broker
Your
application
Binary (MsgPack)
Support streaming & batching
Client
Horiziontally
scalable
Append only log / event sourcing
61. Summary: How to avoid the 7 sins?
• Use a lightweight workflow engine or
state machine
• Use it properly – as a state machine
(state, timeouts, retrying, message
correlation & deduplication,
compensation)
• Do not model everything
• Leverage BizDevOps & embrace visibility
• Slice your processes fitting your contexts
(monolith vs. microservices)
• Avoid over-engineering (enterprise-wide
xyz, abstractions, …)