SlideShare a Scribd company logo
1 of 102
Download to read offline
Workflow Automation
Reinvented
@berndruecker
What people think, when I say „Workflow Automation“…
What I think, when I say „Workflow Automation“
…
What people think, when I say „BPM“…
Death by properties panel
Low-code is great!
(You can get rid
of your developers!)
@berndruecker
What I think, when I say „BPM“
+
public static void main(String[] args) {
ProcessEngine engine = new StandaloneInMemProcessEngineConfiguration()
.buildProcessEngine();
engine.getRepositoryService().createDeployment() //
.addModelInstance("flow.bpmn", Bpmn.createExecutableProcess("flow") //
.startEvent()
.serviceTask("Step1").camundaClass(SysoutDelegate.class)
.serviceTask("Step2").camundaClass(SysoutDelegate.class)
.endEvent()
.done()
).deploy();
engine.getRuntimeService().startProcessInstanceByKey(
"flow", Variables.putValue("city", "New York"));
}
public class SysoutDelegate implements JavaDelegate {
public void execute(DelegateExecution execution) throws Exception {
System.out.println("Hello " + execution.getVariable("city"));
}
}
What do I mean by
„lightweight?“
@berndruecker
public static void main(String[] args) {
ProcessEngine engine = new StandaloneInMemProcessEngineConfiguration()
.buildProcessEngine();
engine.getRepositoryService().createDeployment() //
.addModelInstance("flow.bpmn", Bpmn.createExecutableProcess("flow") //
.startEvent()
.serviceTask("Step1").camundaClass(SysoutDelegate.class)
.serviceTask("Step2").camundaClass(SysoutDelegate.class)
.endEvent()
.done()
).deploy();
engine.getRuntimeService().startProcessInstanceByKey(
"flow", Variables.putValue("city", "New York"));
}
public class SysoutDelegate implements JavaDelegate {
public void execute(DelegateExecution execution) throws Exception {
System.out.println("Hello " + execution.getVariable("city"));
}
}
Build engine
in one line of
code
(using in-
memory H2)
@berndruecker
public static void main(String[] args) {
ProcessEngine engine = new StandaloneInMemProcessEngineConfiguration()
.buildProcessEngine();
engine.getRepositoryService().createDeployment() //
.addModelInstance("flow.bpmn", Bpmn.createExecutableProcess("flow")
.startEvent()
.serviceTask("Step1").camundaClass(SysoutDelegate.class)
.serviceTask("Step2").camundaClass(SysoutDelegate.class)
.endEvent()
.done()
).deploy();
engine.getRuntimeService().startProcessInstanceByKey(
"flow", Variables.putValue("city", "New York"));
}
public class SysoutDelegate implements JavaDelegate {
public void execute(DelegateExecution execution) throws Exception {
System.out.println("Hello " + execution.getVariable("city"));
}
}
Define flow
e.g. in Java
DSL
@berndruecker
public static void main(String[] args) {
ProcessEngine engine = new StandaloneInMemProcessEngineConfiguration()
.buildProcessEngine();
engine.getRepositoryService().createDeployment() //
.addModelInstance("flow.bpmn", Bpmn.createExecutableProcess("flow")
.startEvent()
.serviceTask("Step1").camundaClass(SysoutDelegate.class)
.serviceTask("Step2").camundaClass(SysoutDelegate.class)
.endEvent()
.done()
).deploy();
engine.getRuntimeService().startProcessInstanceByKey(
"flow", Variables.putValue("city", "New York"));
}
public class SysoutDelegate implements JavaDelegate {
public void execute(DelegateExecution execution) throws Exception {
System.out.println("Hello " + execution.getVariable("city"));
}
}
Define flow
e.g. in Java
DSL
@berndruecker
BPMN
Business Process
Model and Notation
ISO Standard
@berndruecker
public static void main(String[] args) {
ProcessEngine engine = new StandaloneInMemProcessEngineConfiguration()
.buildProcessEngine();
engine.getRepositoryService().createDeployment() //
.addModelInstance("flow.bpmn", Bpmn.createExecutableProcess("flow")
.startEvent()
.serviceTask("Step1").camundaClass(SysoutDelegate.class)
.serviceTask("Step2").camundaClass(SysoutDelegate.class)
.endEvent()
.done()
).deploy();
engine.getRuntimeService().startProcessInstanceByKey(
"flow", Variables.putValue("city", "New York"));
}
public class SysoutDelegate implements JavaDelegate {
public void execute(DelegateExecution execution) throws Exception {
System.out.println("Hello " + execution.getVariable("city"));
}
}
We can attach
code…
@berndruecker
public static void main(String[] args) {
ProcessEngine engine = new StandaloneInMemProcessEngineConfiguration()
.buildProcessEngine();
engine.getRepositoryService().createDeployment() //
.addModelInstance("flow.bpmn", Bpmn.createExecutableProcess("flow")
.startEvent()
.serviceTask("Step1").camundaClass(SysoutDelegate.class)
.serviceTask("Step2").camundaClass(SysoutDelegate.class)
.endEvent()
.done()
).deploy();
engine.getRuntimeService().startProcessInstanceByKey(
"flow", Variables.putValue("city", "New York"));
}
public class SysoutDelegate implements JavaDelegate {
public void execute(DelegateExecution execution) throws Exception {
System.out.println("Hello " + execution.getVariable("city"));
}
}
…that is
called when
workflow
instances pass
through
@berndruecker
public static void main(String[] args) {
ProcessEngine engine = new StandaloneInMemProcessEngineConfiguration()
.buildProcessEngine();
engine.getRepositoryService().createDeployment() //
.addModelInstance("flow.bpmn", Bpmn.createExecutableProcess("flow")
.startEvent()
.serviceTask("Step1").camundaClass(SysoutDelegate.class)
.serviceTask("Step2").camundaClass(SysoutDelegate.class)
.endEvent()
.done()
).deploy();
engine.getRuntimeService().startProcessInstanceByKey(
"flow", Variables.putValue("city", "New York"));
}
public class SysoutDelegate implements JavaDelegate {
public void execute(DelegateExecution execution) throws Exception {
System.out.println("Hello " + execution.getVariable("city"));
}
}
Start
instances
@berndruecker
Architecture choices
Your app or service
WF Engine
Your app or service
WF
Engine
WF Engine
logic or
service
WF Engine
logic or
service
Call,
send message,
connector, …
(Long-)Polling
Pub/Sub
PushEmbedded
Server Pull
vs vs
See also https://blog.bernd-ruecker.com/architecture-options-to-run-a-workflow-engine-6c2419902d91
Why workflow automation?
https://thenewstack.io/5-workflow-automation-use-cases-you-might-not-have-considered/
<= milliseconds seconds minutes, weeks, …
Business
IT
long runningalways short running short running, but
potentially long running
Use cases for workflow automation
<= milliseconds seconds minutes, weeks, …
Business
IT
Business processes
automation
long runningalways short running short running, but
potentially long running
Use cases for workflow automation
Real-life examples
<= milliseconds seconds minutes, weeks, …
Business
IT
Business processes
automation
long runningalways short running short running, but
potentially long running
Use cases for workflow automation
<= milliseconds seconds minutes, weeks, …
Business
IT
Business processes
automation
long runningalways short running short running, but
potentially long running
Use cases for workflow automation
Communication in
distributed systems
Payment
Ever called a RESTAPI?
Credit
Card
REST
Distributed systems
“A distributed system is one in which the failure of a computer
you didn’t even know existed can render your own computer unusable.”
Lamport
Payment
Stateful retry
Credit
Card
REST
Distributed systems introduce complexity you have to tackle!
Credit
Card
Payment
REST
It is impossible to
differentiate certain
failure scenarios.
Independant of
communication style!
Service
Provider
Client
Distributed systems introduce complexity you have to tackle!
Credit
Card
Payment
REST
Distributed systems introduce complexity you have to tackle!
Credit
Card
Payment
REST
Cancel
charge
Live hacking
Warning:
Contains Opinion
Berlin, Germany
mail@berndruecker.io
@berndruecker
Bernd Ruecker
Co-founder and
Chief Technologist of
Camunda
Live hacking
https://github.com/berndruecker/flowing-retail/tree/master/rest/java/payment-camunda
https://github.com/berndruecker/flowing-retail-payment-rest-spring-statemachine
Embedded, Push
Your app or service
WF Engine
logic or
service
Call,
send message,
connector, …
Push
Embedded
Raises questions around
Threads,
Transactions, …
Spring StateMachine docs
Aspects to consider
Camunda Spring State Machine
Workflow Definition BPMN 2.0
(graphical, XML, Model API)
Java API, UML-Generator
Visual? YES No
Tooling Modeler, Cockpit, Optimize -
Storage Runtime RDMS up to you
Storage History RDMS -
Scalability Stateless Engine,
RDMS is limit,
Sharding possible
up to you
Fault tolerance If RDMS is HA up to you
Supported programming
languages
Java, REST,
Language Clients (JS, C#)
Java
HOMEWORK
See more on http://berndruecker.io/
Long running services*
provide a better API!
@berndruecker
* Services that have the capability to keep state and thus can be potentially long running
Example
Order Payment
Retrieve
Payment
@berndruecker
Example
Order Payment
Credit
Card
Retrieve
Payment
@berndruecker
Example
Order Payment
Credit
Card
Retrieve
Payment
Rejected
@berndruecker
Example
Order Payment
If the credit
card was
rejected, the
customer can
provide new
details
Credit
Card
Retrieve
Payment
Rejected
Rejected
@berndruecker
Example
Order Payment
Client of dumb endpoints easily become a god services.
If the credit
card was
rejected, the
customer can
provide new
details
Credit
Card
Retrieve
Payment
Rejected
Rejected
@berndruecker
Payment
failed
Who is responsible to deal with problems?
Order Payment
If the credit
card was
rejected, the
customer can
provide new
details
Credit
Card
Retrieve
Payment
Rejected
Payment
received
@berndruecker
Payment
failed
Long running services
Order Payment
Credit
Card
Retrieve
Payment
Rejected
Payment
received
Smart endpoints are
potentially long-running
@berndruecker
<= milliseconds seconds minutes, weeks, …
Business
IT
Business processes
automation
long runningalways short running short running, but
potentially long running
Use cases for workflow automation
Communication in
distributed systems
<= milliseconds seconds minutes, weeks, …
Business
IT
Business processes
automation
Communication in
distributed systems
long runningalways short running short running, but
potentially long running
Use cases for workflow automation
Orchestration
Microservices…
Service
B
Some
Service
Some
Service Some
Service
Service
C
Service
A
Service
D
Monolith
Functionality
A
Functionality
B
Functionality
C
Functionality
D
Simplified version…
@berndruecker
(Micro-)services
Checkout
Payment
Inventory
Shipment
@berndruecker
Order
Placed
Payment
Received
Goods
Fetched
Notification
Event-driven architecture
@berndruecker
Checkout
Payment
Inventory
Shipment
Peer-to-peer event chains
Checkout
Payment
Inventory
Shipment
Order
placed
Payment
received
Goods
shipped
Goods
fetched
@berndruecker
Peer-to-peer event chains
Checkout
Payment
Inventory
Shipment
Order
placed
Payment
received
Goods
shipped
Goods
fetched
@berndruecker
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
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
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
Peer-to-peer event chains
Checkout
Payment
Inventory
Shipment
Order
placed
Payment
received
Goods
shipped
Goods
fetched
Fetch the goods
before the
payment
@berndruecker
Peer-to-peer event chains
Checkout
Payment
Inventory
Shipment
Fetch the goods
before the
payment
Goods
fetched
Order
placed
Payment
received
Goods
shipped
@berndruecker
What we wanted
Photo by Lijian Zhang, available under Creative Commons SA 2.0 License and Pedobear19 / CC BY-SA 4.0
@berndruecker
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
Order
It still can be messaging!
Checkout
Payment
Inventory
Shipment
Order
placed
Retrieve
payment
@berndruecker
Workflows implement stateful orchestration logic
@berndruecker
No BPM(N) monoliths
https://blog.bernd-ruecker.com/avoiding-the-bpm-monolith-when-using-bounded-contexts-d86be6308d8
@berndruecker
Microservice pioneers
have become aware
https://netflix.github.io/conductor/metadata/kitchensink/
Live hacking
https://github.com/berndruecker/flowing-retail/
Architecture choices
WF
Engine
Service
Server
Pull
Service
WF
Engine
Service
Server
Queue /
Topic Name
Topic Name
Service
Pull
Aspects to consider
Zeebe Conductor
Workflow Definition BPMN 2.0 (graphical, XML,
Model API)
JSON
Visual? YES No
Tooling Modeler, Operate Simple UI
Storage Runtime File System (via RocksDB) Dynomite + Elasticsearch
Storage History Elasticsearch -
Supported programming
languages
grpc,
Language clients (Java, C#,
JS, Python, C#)
REST, Language Clients
(Java, Python), grpc
Licensing ASL ASL
HOMEWORK
Camunda vs. Zeebe
Camunda ZeebePersistent
State
Persistent
change
RDMS
Workflow
Instance
Id
Current
Activity
State
2 RetrievePayment running
Workflow
Instance
Id
Current
Activity
State
2 ShipGoods running
Workflow
Instance
Id
Current
Activity
State
2 OrderDelivered ended
2.
3. UPDATE
2. UPDATE
1. INSERT
3.1.
RDMS
Workflow
Engine
Append-only
Log1.
create
workflow
instance
workflow
instance
created
start
event
occured
sequence
flow taken
activity
activated
task
created
lock
created
task
locked
complete
task
task
completed
activity
completed
sequence
flow taken
…
…
2.
2.
3.1.
Workflow
Engine
Event Handling, Replication & Single Writer
Follower
Follower
complete task
command
task completed
event
1 send
2 append command
Broker
(Leader)
Stream
Processor
4 process
7
store & replicate
event
6 append event
3
store & replicate
command
5 respond
Single Writer
(single thread)
Horizontal scalability by partitioning
Partition 1
Partition 2
Partition 3
Partition 4
Every workflow instance is
exactly handled by one
partition
instance id: 2-42
instance id: 3-66
Stream
Processor Single Writer
(single thread)
See more on http://berndruecker.io/
<= milliseconds seconds minutes, weeks, …
Business
IT
Business processes
automation
Communication in
distributed systems
long runningalways short running short running, but
potentially long running
Use cases for workflow automation
Orchestration
<= milliseconds seconds minutes, weeks, …
Business
IT
Business processes
automation
Communication in
distributed systems
long runningalways short running short running, but
potentially long running
Use cases for workflow automation
Orchestration
Consistency
The classical example
book
hotel
book
car
book
flight
1. 2. 3.
Failure!
book
trip
Pat Helland
“
Distributed Systems Guru
Worked at Amazon,
Microsoft & Salesforce
@berndruecker
Pat Helland
Grown-Ups Don’t Use
Distributed Transactions
“
Distributed Systems Guru
Worked at Amazon,
Microsoft & Salesforce
@berndruecker
The classical example
Saga
book
hotel
book
car
book
flight
cancel
hotel
cancel
car
1. 2. 3.
5.6.
Failure
book
trip
Trigger compensations
Live hacking
BPMN
Saga Pattern
(implemented by BPMN compensation)
https://github.com/berndruecker/trip-booking-saga-java
Step Functions
https://read.acloud.guru/how-the-saga-pattern-manages-failures-with-aws-lambda-and-
step-functions-bc8f7129f900
Flow language is important!
Think of more complicated scenarios…
Architecture for Serverless
WF Engine
(Long-)Polling Push
Pull
function
Server
glue layer
logic or
service
Easy to hop
over firewalls
Aspects to consider
Camunda AWS Step Functions
Workflow
Definition
BPMN 2.0 (graphical, XML,
Model API)
JSON
Visual? YES Simple, only runtime
Tooling Modeler, Cockpit,
Optimize
-
Scalability Stateless Engine
With RDMS
Up to ~ 1k state
transitions / sec*
Deployment Embedded or Server Cloud (Server)
Licensing ASL Proprietary
HOMEWORK
See more on http://berndruecker.io/
<= milliseconds seconds minutes, weeks, …
Business
IT
Business processes
automation
Distributed
Transactions
Orchestration
Communication in
distributed systems
long runningalways short running short running, but
potentially long running
Use cases for workflow automation
<= milliseconds seconds minutes, weeks, …
Business
IT
Business processes
automation
Distributed
Transactions
Decision
Automation
Orchestration
Communication in
distributed systems
long runningalways short running short running, but
potentially long running
Use cases for workflow automation
Photo by ErikaWittlieb, available under Creative Commons CC0 1.0 license.
Decisions with DMN
Workflow Automation is important in modern architectures!
Thoughts on the state machine | workflow engine market
Thoughts on the state machine | workflow engine market
OSS Workflow or
Orchestration Engines
Stack Vendors,
Pure Play BPMS
Low Code Platforms
Homegrown frameworks
to scratch an itch
Integration Frameworks
Cloud Offerings
Uber, Netflix, AirBnb, ING, … AWS Step Functions,
Azure Durable Functions, …
Camunda, Zeebe, jBPM,
Activiti, Flowable, Mistral, …
PEGA, IBM, SAG, …
Apache Airflow,
Spring Data Flow, …
Apache Camel,
Balerina, …
Data
Pipelines
Does it support stateful operations?
Does it support the necessary flow logic?
Does it support BizDevOps?
Does it scale?
https://zeebe.io/blog/2019/03/zeebe-comparison-evaluation-criteria/
My personal pro-tip for a shortlist ;-)
OSS Workflow or
Orchestration Engines
Stack Vendors,
Pure Play BPMS
Low Code Platforms
Homegrown frameworks
to scratch an itch
Integration Frameworks
Cloud Offerings
Data
Pipelines
Camunda & Zeebe
Thank you!
@berndruecker
mail@berndruecker.io
@berndruecker
https://berndruecker.io
https://medium.com/berndruecker
https://github.com/berndruecker
https://www.infoq.com/articles/events-
workflow-automation
Contact:
Slides:
Blog:
Code:
https://www.infoworld.com/article/3254777/
application-development/
3-common-pitfalls-of-microservices-
integrationand-how-to-avoid-them.html
https://thenewstack.io/5-workflow-automation-
use-cases-you-might-not-have-considered/

More Related Content

What's hot

What's hot (20)

Kafka Summit 2018: Monitoring and Orchestration of Your Microservices Landsca...
Kafka Summit 2018: Monitoring and Orchestration of Your Microservices Landsca...Kafka Summit 2018: Monitoring and Orchestration of Your Microservices Landsca...
Kafka Summit 2018: Monitoring and Orchestration of Your Microservices Landsca...
 
DDD Europe 2019: Lost in transaction
DDD Europe 2019: Lost in transactionDDD Europe 2019: Lost in transaction
DDD Europe 2019: Lost in transaction
 
Camunda Con Live 2020 Keynote - Microservice Orchestration and Integration
Camunda Con Live 2020 Keynote - Microservice Orchestration and IntegrationCamunda Con Live 2020 Keynote - Microservice Orchestration and Integration
Camunda Con Live 2020 Keynote - Microservice Orchestration and Integration
 
Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...
Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...
Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...
 
2019 - Lost in transaction
2019 - Lost in transaction2019 - Lost in transaction
2019 - Lost in transaction
 
Camunda Meetup: Rethink Business Processes and User Experience to Leverage Th...
Camunda Meetup: Rethink Business Processes and User Experience to Leverage Th...Camunda Meetup: Rethink Business Processes and User Experience to Leverage Th...
Camunda Meetup: Rethink Business Processes and User Experience to Leverage Th...
 
QCon 2019 - Opportunities and Pitfalls of Event-Driven Utopia
QCon 2019 - Opportunities and Pitfalls of Event-Driven UtopiaQCon 2019 - Opportunities and Pitfalls of Event-Driven Utopia
QCon 2019 - Opportunities and Pitfalls of Event-Driven Utopia
 
QCon London 2018: 3 common pitfalls in microservice integration and how to av...
QCon London 2018: 3 common pitfalls in microservice integration and how to av...QCon London 2018: 3 common pitfalls in microservice integration and how to av...
QCon London 2018: 3 common pitfalls in microservice integration and how to av...
 
JFS 2021 - The Process Automation Map
JFS 2021 - The Process Automation MapJFS 2021 - The Process Automation Map
JFS 2021 - The Process Automation Map
 
JAX 2017 talk: Orchestration of microservices
JAX 2017 talk: Orchestration of microservicesJAX 2017 talk: Orchestration of microservices
JAX 2017 talk: Orchestration of microservices
 
GopherCon UK 2018 - Orchestration of microservices
GopherCon UK 2018 - Orchestration of microservicesGopherCon UK 2018 - Orchestration of microservices
GopherCon UK 2018 - Orchestration of microservices
 
Java User Group Erfurt 2018: Zeebe.io - Event-driven Microservice Orchestration
Java User Group Erfurt 2018: Zeebe.io - Event-driven Microservice OrchestrationJava User Group Erfurt 2018: Zeebe.io - Event-driven Microservice Orchestration
Java User Group Erfurt 2018: Zeebe.io - Event-driven Microservice Orchestration
 
Long running processes in DDD
Long running processes in DDDLong running processes in DDD
Long running processes in DDD
 
Jfokus 2018: Lost in transaction - Strategies to deal with (in-)consistency ...
Jfokus 2018: Lost in transaction -  Strategies to deal with (in-)consistency ...Jfokus 2018: Lost in transaction -  Strategies to deal with (in-)consistency ...
Jfokus 2018: Lost in transaction - Strategies to deal with (in-)consistency ...
 
Complex event flows in distributed systems (QCon London 2019)
Complex event flows in distributed systems (QCon London 2019)Complex event flows in distributed systems (QCon London 2019)
Complex event flows in distributed systems (QCon London 2019)
 
CamundaCon 2020 Keynote - The Return of Process Automation
CamundaCon 2020 Keynote - The Return of Process AutomationCamundaCon 2020 Keynote - The Return of Process Automation
CamundaCon 2020 Keynote - The Return of Process Automation
 
Monitoring and Orchestration of your Microservices Landscape with Kafka and Z...
Monitoring and Orchestration of your Microservices Landscape with Kafka and Z...Monitoring and Orchestration of your Microservices Landscape with Kafka and Z...
Monitoring and Orchestration of your Microservices Landscape with Kafka and Z...
 
Process Automation Forum April 2021 - Practical Process Automation
Process Automation Forum April 2021 - Practical Process AutomationProcess Automation Forum April 2021 - Practical Process Automation
Process Automation Forum April 2021 - Practical Process Automation
 
Java User Group Maas-Rhine February 2018: 7 sins of workflow
Java User Group Maas-Rhine February 2018: 7 sins of workflowJava User Group Maas-Rhine February 2018: 7 sins of workflow
Java User Group Maas-Rhine February 2018: 7 sins of workflow
 
O'Reilly SA NYC 2018: Complex event flows in distributed systems
O'Reilly SA NYC 2018: Complex event flows in distributed systemsO'Reilly SA NYC 2018: Complex event flows in distributed systems
O'Reilly SA NYC 2018: Complex event flows in distributed systems
 

Similar to JAX 2019 - Workflow automation reinvented

GHC Participant Training
GHC Participant TrainingGHC Participant Training
GHC Participant Training
AidIQ
 
Mobile Software Engineering Crash Course - C06 WindowsPhone
Mobile Software Engineering Crash Course - C06 WindowsPhoneMobile Software Engineering Crash Course - C06 WindowsPhone
Mobile Software Engineering Crash Course - C06 WindowsPhone
Mohammad Shaker
 
Transaction Management Tool
Transaction Management ToolTransaction Management Tool
Transaction Management Tool
Peeyush Ranjan
 
Streaming Analytics for Financial Enterprises
Streaming Analytics for Financial EnterprisesStreaming Analytics for Financial Enterprises
Streaming Analytics for Financial Enterprises
Databricks
 
Inversion Of Control
Inversion Of ControlInversion Of Control
Inversion Of Control
bhochhi
 
Introduction to nodejs
Introduction to nodejsIntroduction to nodejs
Introduction to nodejs
James Carr
 

Similar to JAX 2019 - Workflow automation reinvented (20)

Complex event flows in distributed systems
Complex event flows in distributed systemsComplex event flows in distributed systems
Complex event flows in distributed systems
 
Reactive programming every day
Reactive programming every dayReactive programming every day
Reactive programming every day
 
A framework for self-healing applications – the path to enable auto-remediation
A framework for self-healing applications – the path to enable auto-remediationA framework for self-healing applications – the path to enable auto-remediation
A framework for self-healing applications – the path to enable auto-remediation
 
jBPM5 in action - a quickstart for developers
jBPM5 in action - a quickstart for developersjBPM5 in action - a quickstart for developers
jBPM5 in action - a quickstart for developers
 
JBoss Brings More Power to your Business Processes (PTJUG)
JBoss Brings More Power to your Business Processes (PTJUG)JBoss Brings More Power to your Business Processes (PTJUG)
JBoss Brings More Power to your Business Processes (PTJUG)
 
Informatica_MDM_User_Exits.ppt
Informatica_MDM_User_Exits.pptInformatica_MDM_User_Exits.ppt
Informatica_MDM_User_Exits.ppt
 
GHC Participant Training
GHC Participant TrainingGHC Participant Training
GHC Participant Training
 
Mobile Software Engineering Crash Course - C06 WindowsPhone
Mobile Software Engineering Crash Course - C06 WindowsPhoneMobile Software Engineering Crash Course - C06 WindowsPhone
Mobile Software Engineering Crash Course - C06 WindowsPhone
 
Transaction Management Tool
Transaction Management ToolTransaction Management Tool
Transaction Management Tool
 
Camunda BPM 7.2: Tasklist and Javascript Forms SDK (English)
Camunda BPM 7.2: Tasklist and Javascript Forms SDK (English)Camunda BPM 7.2: Tasklist and Javascript Forms SDK (English)
Camunda BPM 7.2: Tasklist and Javascript Forms SDK (English)
 
Beyond simple benchmarks—a practical guide to optimizing code
Beyond simple benchmarks—a practical guide to optimizing code Beyond simple benchmarks—a practical guide to optimizing code
Beyond simple benchmarks—a practical guide to optimizing code
 
PVS-Studio and Continuous Integration: TeamCity. Analysis of the Open RollerC...
PVS-Studio and Continuous Integration: TeamCity. Analysis of the Open RollerC...PVS-Studio and Continuous Integration: TeamCity. Analysis of the Open RollerC...
PVS-Studio and Continuous Integration: TeamCity. Analysis of the Open RollerC...
 
Streaming Analytics for Financial Enterprises
Streaming Analytics for Financial EnterprisesStreaming Analytics for Financial Enterprises
Streaming Analytics for Financial Enterprises
 
MuCon London 2017: Break your event chains
MuCon London 2017: Break your event chainsMuCon London 2017: Break your event chains
MuCon London 2017: Break your event chains
 
[NDC 2019] Enterprise-Grade Serverless
[NDC 2019] Enterprise-Grade Serverless[NDC 2019] Enterprise-Grade Serverless
[NDC 2019] Enterprise-Grade Serverless
 
[NDC 2019] Functions 2.0: Enterprise-Grade Serverless
[NDC 2019] Functions 2.0: Enterprise-Grade Serverless[NDC 2019] Functions 2.0: Enterprise-Grade Serverless
[NDC 2019] Functions 2.0: Enterprise-Grade Serverless
 
JBoss jBPM, the future is now (YaJUG session)
JBoss jBPM, the future is now (YaJUG session)JBoss jBPM, the future is now (YaJUG session)
JBoss jBPM, the future is now (YaJUG session)
 
Inversion Of Control
Inversion Of ControlInversion Of Control
Inversion Of Control
 
Introduction to nodejs
Introduction to nodejsIntroduction to nodejs
Introduction to nodejs
 
JavaScript Refactoring
JavaScript RefactoringJavaScript Refactoring
JavaScript Refactoring
 

More from Bernd Ruecker

More from Bernd Ruecker (20)

QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
WeAreDevelopers Live 2024 - Mastering long-running processes in modern archit...
WeAreDevelopers Live 2024 - Mastering long-running processes in modern archit...WeAreDevelopers Live 2024 - Mastering long-running processes in modern archit...
WeAreDevelopers Live 2024 - Mastering long-running processes in modern archit...
 
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
 
JCon Live 2023 - Lice coding some integration problems
JCon Live 2023 - Lice coding some integration problemsJCon Live 2023 - Lice coding some integration problems
JCon Live 2023 - Lice coding some integration problems
 
JFall - Process Oriented Integration
JFall - Process Oriented IntegrationJFall - Process Oriented Integration
JFall - Process Oriented Integration
 
CamundaCon NYC 2023 Keynote - Shifting into overdrive with process orchestration
CamundaCon NYC 2023 Keynote - Shifting into overdrive with process orchestrationCamundaCon NYC 2023 Keynote - Shifting into overdrive with process orchestration
CamundaCon NYC 2023 Keynote - Shifting into overdrive with process orchestration
 
JavaLand 2023 - Process Oriented Integration
JavaLand 2023 - Process Oriented IntegrationJavaLand 2023 - Process Oriented Integration
JavaLand 2023 - Process Oriented Integration
 
CraftConf: Surviving the hyperautomation low code bubbl
CraftConf: Surviving the hyperautomation low code bubblCraftConf: Surviving the hyperautomation low code bubbl
CraftConf: Surviving the hyperautomation low code bubbl
 
Mastering Data for Higher Business Impact - at Commerzbank Innovation Summit
Mastering Data for Higher Business Impact - at Commerzbank Innovation SummitMastering Data for Higher Business Impact - at Commerzbank Innovation Summit
Mastering Data for Higher Business Impact - at Commerzbank Innovation Summit
 
Camunda Chapter Hamburg - Surviving the hyperautomation low code bubble
Camunda Chapter Hamburg - Surviving the hyperautomation low code bubbleCamunda Chapter Hamburg - Surviving the hyperautomation low code bubble
Camunda Chapter Hamburg - Surviving the hyperautomation low code bubble
 
Loosely or lousily coupled - Understanding communication patterns in microser...
Loosely or lousily coupled - Understanding communication patterns in microser...Loosely or lousily coupled - Understanding communication patterns in microser...
Loosely or lousily coupled - Understanding communication patterns in microser...
 
CamundaCon 2022 Keynote: The Process Orchestration Journey
CamundaCon 2022 Keynote: The Process Orchestration JourneyCamundaCon 2022 Keynote: The Process Orchestration Journey
CamundaCon 2022 Keynote: The Process Orchestration Journey
 
JAX 2022 - Loosely or lousily coupled
JAX 2022 - Loosely or lousily coupledJAX 2022 - Loosely or lousily coupled
JAX 2022 - Loosely or lousily coupled
 
JCon 2021 - Loosely or lousily coupled
JCon 2021 - Loosely or lousily coupledJCon 2021 - Loosely or lousily coupled
JCon 2021 - Loosely or lousily coupled
 
CamundaCon 2021 Keynote :From Human Workflow to High-Throughput Process Autom...
CamundaCon 2021 Keynote :From Human Workflow to High-Throughput Process Autom...CamundaCon 2021 Keynote :From Human Workflow to High-Throughput Process Autom...
CamundaCon 2021 Keynote :From Human Workflow to High-Throughput Process Autom...
 
Kafka Summit 2021 - Apache Kafka meets workflow engines
Kafka Summit 2021 - Apache Kafka meets workflow enginesKafka Summit 2021 - Apache Kafka meets workflow engines
Kafka Summit 2021 - Apache Kafka meets workflow engines
 
Micronaut Webinar 2021 - Process Automation Introduction
Micronaut Webinar 2021 - Process Automation IntroductionMicronaut Webinar 2021 - Process Automation Introduction
Micronaut Webinar 2021 - Process Automation Introduction
 
Automating Processes in Modern Architectures
Automating Processes in Modern ArchitecturesAutomating Processes in Modern Architectures
Automating Processes in Modern Architectures
 
OOP 2021 - Leverage the full potential of your hipster architecture
OOP 2021 - Leverage the full potential of your hipster architectureOOP 2021 - Leverage the full potential of your hipster architecture
OOP 2021 - Leverage the full potential of your hipster architecture
 
GOTOpia 2020 - Balancing Choreography and Orchestration
GOTOpia 2020 - Balancing Choreography and OrchestrationGOTOpia 2020 - Balancing Choreography and Orchestration
GOTOpia 2020 - Balancing Choreography and Orchestration
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

JAX 2019 - Workflow automation reinvented