Orchestrate the Chaos: Process automation in modern architectures
Open Source Day Florence / March 7, 2024
Slide 2
Poll
■ How many here use microservice architectures?
■ Has anyone struggled to explain data flow/logic between technical and non-technical teams?
■ Has anyone heard of BPMN? DMN? BPM?
■ Has anyone heard of Camunda?
Slide 3
Who am I? ■ Developer Advocate @ Camunda ■ Denver, CO, United States Samantha Holstine @sholstine620 she/her
■ Fun fact: I’m a dance fitness and studio rowing instructor in my free time
Hard problems to solve Documentation Data flow diagrams look like spaghetti
Timers Alerts, stuck/idle processes, notifications
Interrupting messages Your application is already executing code, but something has changed and you need to interrupt it and handle it differently
Changes to business logic All your services are running nicely together, but now a new service is added that integrates with other existing services …
Slide 12
Forget services and infrastructure. Let’s think about it in terms of processes
Slide 13
“…a collection of related, structured activities or tasks performed by people or equipment”
Slide 14
Real World Scenario
Slide 15
Truck Permits
A local municipality needs to issue permits to trucking companies: ●
Trucking company fills out a form
●
A price is determined for the permit
●
The company pays for the permit
●
The permit is issued
Slide 16
Truck Permits
A local municipality needs to issue permits to trucking companies: ● ● ● ●
Trucking company fills out a form -> UserForm microservice A price is determined for the permit -> PermitMatch microservice The company pays for the permit -> Payments microservice The permit is issued -> IssuePermit microservice
Slide 17
Slide 18
New requirement!
“We need the permit turned into a PDF, and email notifications to the user and to us”
Slide 19
Truck Permits
A local municipality needs to issue permits to trucking companies: ● ● ● ●
Trucking company fills out a form -> UserForm microservice A price is determined for the permit -> PermitMatch microservice The company pays for the permit -> Payments microservice The permit is issued -> IssuePermit microservice -> PDF microservice -> Email microservice
Slide 20
Slide 21
New requirement!
“A user tried to fill in the form, but it didn’t match a permit!”
Slide 22
Slide 23
New requirement!
“If they don’t pay in X days, the permit needs to be canceled!”
Slide 24
How might you solve this?
Slide 25
Introducing BPMN
Business Process d n a l e d Mo n o i t a t o N
Maintained spec
Visualization
Bridge communication
ISO/IEC 19510 spec maintained by OMG (Object Management Group)
Easily understand complex processes; no more spaghetti!
Simplify discussions with stakeholders; unify design and implementation
Slide 26
Slide 27
Slide 28
Remember this?
“If they don’t pay in X days, the permit needs to be canceled!”
Slide 29
Slide 30
… That’s great, dude, but that’s just a diagram.
Slide 31
… or is it?!
Slide 32
BPMN Engines (Workflow Management Systems)
Slide 33
Many options to choose from
https://bpmn-miwg.github.io/bpmn-miwg-tools/
Slide 34
Camunda - The Universal Process Orchestrator Orchestrate
Automate
Transform
Complex process flows across people, systems and devices.
Any process, anywhere.
Your organization toward a digital future.
Collaborate
Flexibility
All Endpoints Human Work
AI
Business Rules
Micro Services
RPA
API
IoT
Systems (legacy + homegrown)
Slide 35
Slide 36
Slide 37
The state of a process is managed by the workflow engine, not the application. The data is managed by the application, not the engine.
Slide 38
New requirement!
“For some permits, they need additional approval before collecting payment.”
Slide 39
Slide 40
Slide 41
New requirement!
“Oh, and we should probably send a payment reminder before we cancel the permit.”
Slide 42
Errors and reminders
Slide 43
Errors and reminders
Slide 44
That was easy!
Slide 45
Let’s review 1
BPMN
2
BPMN Engines
3
Simplified management
Open spec that defines processes in an organized, understandable way
Execute the process as drawn, connecting tasks to external services. State of each process is controlled by the engine, not the application.
Easily add additional tasks without changing existing application; engines provide management tools to monitor performance etc.
Slide 46
Resources
● Camunda Academy – free courses on BPMN and Camunda: https://academy.camunda.com/ ● BPMN 2.0 documentation: https://docs.camunda.io/docs/component s/modeler/bpmn/bpmn-primer/ ● Camunda Code Studio on YouTube: https://www.youtube.com/watch?v=fv3wP ccIpL8 ● Camunda Forum: https://forum.camunda.io/