Complex event flows in distributed systems

Bernd Ruecker
Complex event flows in
distributed systems
@berndruecker With thoughts from http://flowing.io
@berndruecker | @martinschimak
3 common hypotheses I check today:
# Events decrease coupling
# Orchestration needs to be avoided
# Workflow engines are painful
Berlin, Germany
bernd.ruecker@camunda.com
@berndruecker
Bernd Ruecker
Co-founder and
Developer Advocate of
Camunda
Complex event flows in distributed systems
Simplified example:
dash button
Photo by 0xF2, available under Creative Commons BY-ND 2.0
license. https://www.flickr.com/photos/0xf2/29873149904/
Three steps…
Who is involved? Some bounded contexts…
Checkout
Payment
Inventory
Shipment
(Micro-)services
Checkout
Payment
Inventory
Shipment
Autonomous (micro-)services
Checkout
Payment
Inventory
Shipment
Dedicated Application Processes
Dedicated infrastructure
Dedicated Development Teams
Events decrease coupling
Example
Checkout
Payment
Inventory
Shipment
The button blinks if we can
ship within 24 hours
Request/response: temporal coupling
Checkout
Payment
Inventory
Shipment
Request
Response
The button blinks if we can
ship within 24 hours
Temporal decoupling with events and read models
Checkout
Payment
Inventory
Shipment
Good
Stored
Read
Model
Good
Fetched
The button blinks if we can
ship within 24 hours
*Events are facts about what happened (in the past)
Events can decrease coupling*
*e.g. decentral data-management, read models,
extract cross-cutting aspects
Peer-to-peer event chains
Checkout
Payment
Inventory
Shipment
Order
placed
Payment
received
Goods
shipped
Goods
fetched
Peer-to-peer event chains
Checkout
Payment
Inventory
Shipment
Order
placed
Payment
received
Goods
shipped
Goods
fetched
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
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
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
Peer-to-peer event chains
Checkout
Payment
Inventory
Shipment
Order
placed
Payment
received
Goods
shipped
Goods
fetched
Fetch the goods
before the
payment
Peer-to-peer event chains
Checkout
Payment
Inventory
Shipment
Order
placed
Payment
received
Goods
shipped
Goods
fetched
Fetch the goods
before the
payment
Customers can
pay via invoice
…
Peer-to-peer event chains
Checkout
Payment
Inventory
Shipment
Order
placed
Payment
received
Goods
shipped
Goods
fetched
Fetch the goods
before the
payment
Peer-to-peer event chains
Checkout
Payment
Inventory
Shipment
Fetch the goods
before the
payment
Goods
fetched
Order
placed
Payment
received
Goods
shipped
Photo by born1945, available under Creative Commons BY 2.0 license.
Order
Extract the end-to-end responsibility
Checkout
Payment
Inventory
Shipment
*Commands have an intent about
what needs to happen in the future
Order
placed
Payment
received
Retrieve
payment
Commands help to avoid (complex)
peer-to-peer event chains
Orchestration needs to be avoided
Smart ESB-like middleware
Checkout
Payment
Inventory
Shipment
Order
Order
placed
Payment
received
Good
fetched
Good
shipped
Dumb pipes
Checkout
Payment
Inventory
Shipment
Order
Smart endpoints
and dumb pipes
Martin Fowler
Danger of god services?
Checkout
Order
A few
smart god services
tell
anemic CRUD services
what to do
Sam Newmann
Payment
Inventory
Shipment
Danger of god services?
Checkout
Payment
Inventory
Shipment
Order
A few
smart god services
tell
anemic CRUD services
what to do
Sam Newmann
A god service is only created
by bad API design!
Example
Order Payment
Retrieve
Payment
Example
Order Payment
Credit
Card
Retrieve
Payment
Example
Order Payment
Credit
Card
Retrieve
Payment
Rejected
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
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
Payment
failed
Long-running execution
Order Payment
Clients of smart endpoints remains lean.
If the credit
card was
rejected, the
customer can
provide new
details
Credit
Card
Retrieve
Payment
Rejected
Payment
received
Smart endpoints are
potentially long-running
Persist thing
(Entity, Document, Actor, …)
State machine or
workflow engine
Typical
concerns
DIY = effort,
accidental
complexity
Scheduling, Versioning,
operating, visibility,
scalability, …
Handling
State
Workflow engines are painful
Complex, proprietary, heavyweight, central, developer adverse, …
Avoid the wrong tools!
Death by properties panel
Low-code is great!
(You can get rid
of your developers!)
Complex, proprietary, heavyweight, central, developer adverse, …
Workflow engines,
state machines
It is
relevant
in modern
architectures
CADENCE
Silicon valley
has recognized
Workflow engines,
state machines
Complex event flows in distributed systems
CADENCE
Workflow engines,
state machines
CADENCE
also at scale
Workflow engines,
state machines
Zeebe.io
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
„leightweight?“
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)
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
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
BPMN
Business Process
Model and Notation
ISO Standard
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…
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
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
Payment
Now you have a state machine!
Payment
Easy to handle time
martin.schimak@plexiti.com
@martinschimak
Synchronous communication
REST
Order Payment
Credit
Card
Synchronous communication
REST
Order Payment
Credit
Card
Synchronous communication
REST
Order Payment
Credit
Card
Synchronous communication
REST
Order Payment
Credit
Card
Stateful
Retry
Distributed
systems
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
Distributed
systems
Distributed transactions using compensation *
Compensation
Relaxed consistency
Temporarily
inconsistent
state
But eventually
consistent
No Isolation
(as in ACID)
https://thenewstack.io/5-workflow-automation-use-cases-you-might-not-have-considered/
<= 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
Biz Dev
improve
communication
improve
communication
Ops
Biz Dev
Leverage
state machine &
workflow engine
Living
documentation
Visibility in
testing
improve
communication
improve
communication
Ops
Visual HTML reports for test cases
Biz Dev
Leverage
state machine &
workflow engine
Living
documentation
Visibility in
testing
Understand and discuss
business processes
Evaluate optimizations
in-sync with
implementation
improve
communication
improve
communication
Ops
Living documentation for long-running behaviour
Biz Dev
Leverage
state machine &
workflow engine
Living
documentation
Visibility in
testing
Understand and discuss
business processes
Evaluate optimizations
in-sync with
implementation
improve
communication
improve
communication
Ops
Biz Dev
Leverage
state machine &
workflow engine
Living
documentation
Visibility in
testing
Operate with visibility
and context
Understand and discuss
business processes
Evaluate optimizations
in-sync with
implementation
improve
communication
improve
communication
Ops
Proper
Operations
Visibility + Context
Before mapping processes
explicitly with BPMN, the truth was
buried in the code and nobody
knew what was going on.
Jimmy Floyd, 24 Hour Fitnesse
„
Workflows live inside service boundaries
Manigfold architecture options
https://blog.bernd-ruecker.com/architecture-options-to-run-a-workflow-engine-6c2419902d91
Manigfold architecture options
https://blog.bernd-ruecker.com/architecture-options-to-run-a-workflow-engine-6c2419902d91
Manigfold architecture options
https://blog.bernd-ruecker.com/architecture-options-to-run-a-workflow-engine-6c2419902d91
Manigfold architecture options
https://blog.bernd-ruecker.com/architecture-options-to-run-a-workflow-engine-6c2419902d91
…
Manigfold architecture options
https://blog.bernd-ruecker.com/architecture-options-to-run-a-workflow-engine-6c2419902d91
Lightweight workflow engines are
great* – don‘t DIY
*e.g. enabling potentially long-running services, solving hard
developer problems, can run decentralized
Sales-Order & Order-Fulfillment
via Camunda
for every order worldwide
(Q2 2017: 22,2 Mio)
Code example & live demo
InventoryPaymentOrder ShippingCheckout Monitor
https://github.com/flowing/flowing-retail/
Human
Tasks
H2 H2
# Events decrease coupling: sometimes
read-models, but no complex peer-to-peer event chains!
# Orchestration needs to be avoided: sometimes
no ESB, smart endpoints/dumb pipes, important capabilities need a home
# Workflow engines are painful: some of them
lightweight engines are easy to use and can run decentralized,
they solve hard developer problems, don‘t DIY
Thank you!
bernd.ruecker@camunda.com
@berndruecker
https://bernd-ruecker.com
https://blog.bernd-ruecker.com
https://github.com/flowing
https://www.infoq.com/articles/events-
workflow-automation
With thoughts from http://flowing.io
@berndruecker | @martinschimak
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/
1 of 92

Recommended

Kafka Summit 2018: Monitoring and Orchestration of Your Microservices Landsca... by
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...Bernd Ruecker
3.2K views59 slides
Lost in transaction - Strategies to deal with (in)consistency in distributed ... by
Lost in transaction - Strategies to deal with (in)consistency in distributed ...Lost in transaction - Strategies to deal with (in)consistency in distributed ...
Lost in transaction - Strategies to deal with (in)consistency in distributed ...Bernd Ruecker
30.6K views85 slides
3 common pitfalls in microservice integration by
3 common pitfalls in microservice integration3 common pitfalls in microservice integration
3 common pitfalls in microservice integrationBernd Ruecker
33.2K views83 slides
Event driven microservices with axon and spring boot-excitingly boring by
Event driven microservices with axon and spring boot-excitingly boringEvent driven microservices with axon and spring boot-excitingly boring
Event driven microservices with axon and spring boot-excitingly boringAllard Buijze
2.4K views36 slides
Microservices Architecture Part 2 Event Sourcing and Saga by
Microservices Architecture Part 2 Event Sourcing and SagaMicroservices Architecture Part 2 Event Sourcing and Saga
Microservices Architecture Part 2 Event Sourcing and SagaAraf Karsh Hamid
9.1K views58 slides
Introduction to Microservices by
Introduction to MicroservicesIntroduction to Microservices
Introduction to MicroservicesRoger van de Kimmenade
434 views71 slides

More Related Content

What's hot

Introduction to Microservices by
Introduction to MicroservicesIntroduction to Microservices
Introduction to MicroservicesAmazon Web Services
20.2K views42 slides
Event Driven Microservices architecture by
Event Driven Microservices architectureEvent Driven Microservices architecture
Event Driven Microservices architectureNikhilBarthwal4
155 views29 slides
Event-Driven Architecture (EDA) by
Event-Driven Architecture (EDA)Event-Driven Architecture (EDA)
Event-Driven Architecture (EDA)WSO2
10.9K views42 slides
Cloud foundry: The Platform for Forging Cloud Native Applications by
Cloud foundry: The Platform for Forging Cloud Native ApplicationsCloud foundry: The Platform for Forging Cloud Native Applications
Cloud foundry: The Platform for Forging Cloud Native ApplicationsChip Childers
7.2K views53 slides
Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl... by
Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...
Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...camunda services GmbH
6.5K views66 slides
Reactive Microservices with Spring 5: WebFlux by
Reactive Microservices with Spring 5: WebFlux Reactive Microservices with Spring 5: WebFlux
Reactive Microservices with Spring 5: WebFlux Trayan Iliev
3.5K views46 slides

What's hot(20)

Event Driven Microservices architecture by NikhilBarthwal4
Event Driven Microservices architectureEvent Driven Microservices architecture
Event Driven Microservices architecture
NikhilBarthwal4155 views
Event-Driven Architecture (EDA) by WSO2
Event-Driven Architecture (EDA)Event-Driven Architecture (EDA)
Event-Driven Architecture (EDA)
WSO210.9K views
Cloud foundry: The Platform for Forging Cloud Native Applications by Chip Childers
Cloud foundry: The Platform for Forging Cloud Native ApplicationsCloud foundry: The Platform for Forging Cloud Native Applications
Cloud foundry: The Platform for Forging Cloud Native Applications
Chip Childers7.2K views
Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl... by camunda services GmbH
Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...
Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...
Reactive Microservices with Spring 5: WebFlux by Trayan Iliev
Reactive Microservices with Spring 5: WebFlux Reactive Microservices with Spring 5: WebFlux
Reactive Microservices with Spring 5: WebFlux
Trayan Iliev3.5K views
Event Sourcing & CQRS, Kafka, Rabbit MQ by Araf Karsh Hamid
Event Sourcing & CQRS, Kafka, Rabbit MQEvent Sourcing & CQRS, Kafka, Rabbit MQ
Event Sourcing & CQRS, Kafka, Rabbit MQ
Araf Karsh Hamid1.3K views
Continuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalk by Thomas Shaw
Continuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalkContinuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalk
Continuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalk
Thomas Shaw1.7K views
CraftConf: Surviving the hyperautomation low code bubbl by Bernd Ruecker
CraftConf: Surviving the hyperautomation low code bubblCraftConf: Surviving the hyperautomation low code bubbl
CraftConf: Surviving the hyperautomation low code bubbl
Bernd Ruecker528 views
Microservices Architecture - Bangkok 2018 by Araf Karsh Hamid
Microservices Architecture - Bangkok 2018Microservices Architecture - Bangkok 2018
Microservices Architecture - Bangkok 2018
Araf Karsh Hamid2.4K views
Jira as a Tool for Test Management by Maija Laksa
Jira as a Tool for Test ManagementJira as a Tool for Test Management
Jira as a Tool for Test Management
Maija Laksa61.3K views
QCONSF - ACID Is So Yesterday: Maintaining Data Consistency with Sagas by Chris Richardson
QCONSF - ACID Is So Yesterday: Maintaining Data Consistency with SagasQCONSF - ACID Is So Yesterday: Maintaining Data Consistency with Sagas
QCONSF - ACID Is So Yesterday: Maintaining Data Consistency with Sagas
Chris Richardson9.6K views
Introduction to Event-Driven Architecture by Solace
Introduction to Event-Driven Architecture Introduction to Event-Driven Architecture
Introduction to Event-Driven Architecture
Solace1.7K views
Microservices Part 3 Service Mesh and Kafka by Araf Karsh Hamid
Microservices Part 3 Service Mesh and KafkaMicroservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and Kafka
Araf Karsh Hamid7.6K views
Key Note - Path to Agility 2013 - Kanban - the alternative path to agility by David Anderson
Key Note - Path to Agility 2013 - Kanban - the alternative path to agilityKey Note - Path to Agility 2013 - Kanban - the alternative path to agility
Key Note - Path to Agility 2013 - Kanban - the alternative path to agility
David Anderson2.4K views
Microservice Architecture | Microservices Tutorial for Beginners | Microservi... by Edureka!
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
Edureka!1.4K views
Apache Kafka and ksqlDB in Action: Let's Build a Streaming Data Pipeline! (Ro... by confluent
Apache Kafka and ksqlDB in Action: Let's Build a Streaming Data Pipeline! (Ro...Apache Kafka and ksqlDB in Action: Let's Build a Streaming Data Pipeline! (Ro...
Apache Kafka and ksqlDB in Action: Let's Build a Streaming Data Pipeline! (Ro...
confluent3.7K views
Agiliza tus procesos de negocio con Microsoft Power Platform by DQSconsulting
Agiliza tus procesos de negocio con Microsoft Power PlatformAgiliza tus procesos de negocio con Microsoft Power Platform
Agiliza tus procesos de negocio con Microsoft Power Platform
DQSconsulting703 views

Similar to Complex event flows in distributed systems

O'Reilly SA NYC 2018: Complex event flows in distributed systems by
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 systemsBernd Ruecker
991 views93 slides
Communication between (micro-)services - Bernd Rücker - Codemotion Amsterdam ... by
Communication between (micro-)services - Bernd Rücker - Codemotion Amsterdam ...Communication between (micro-)services - Bernd Rücker - Codemotion Amsterdam ...
Communication between (micro-)services - Bernd Rücker - Codemotion Amsterdam ...Codemotion
278 views95 slides
Complex Event Flows in Distributed Systems (Bernd Ruecker, Camunda) Kafka Sum... by
Complex Event Flows in Distributed Systems (Bernd Ruecker, Camunda) Kafka Sum...Complex Event Flows in Distributed Systems (Bernd Ruecker, Camunda) Kafka Sum...
Complex Event Flows in Distributed Systems (Bernd Ruecker, Camunda) Kafka Sum...confluent
1.7K views93 slides
Complex event flows in distributed systems (QCon London 2019) by
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)Bernd Ruecker
5.2K views96 slides
Camunda Day New York 2019: Workflow Automation in Microservices Architectures... by
Camunda Day New York 2019: Workflow Automation in Microservices Architectures...Camunda Day New York 2019: Workflow Automation in Microservices Architectures...
Camunda Day New York 2019: Workflow Automation in Microservices Architectures...camunda services GmbH
321 views40 slides
MuCon London 2017: Break your event chains by
MuCon London 2017: Break your event chainsMuCon London 2017: Break your event chains
MuCon London 2017: Break your event chainsBernd Ruecker
2K views53 slides

Similar to Complex event flows in distributed systems(20)

O'Reilly SA NYC 2018: Complex event flows in distributed systems by Bernd Ruecker
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
Bernd Ruecker991 views
Communication between (micro-)services - Bernd Rücker - Codemotion Amsterdam ... by Codemotion
Communication between (micro-)services - Bernd Rücker - Codemotion Amsterdam ...Communication between (micro-)services - Bernd Rücker - Codemotion Amsterdam ...
Communication between (micro-)services - Bernd Rücker - Codemotion Amsterdam ...
Codemotion278 views
Complex Event Flows in Distributed Systems (Bernd Ruecker, Camunda) Kafka Sum... by confluent
Complex Event Flows in Distributed Systems (Bernd Ruecker, Camunda) Kafka Sum...Complex Event Flows in Distributed Systems (Bernd Ruecker, Camunda) Kafka Sum...
Complex Event Flows in Distributed Systems (Bernd Ruecker, Camunda) Kafka Sum...
confluent1.7K views
Complex event flows in distributed systems (QCon London 2019) by Bernd Ruecker
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)
Bernd Ruecker5.2K views
Camunda Day New York 2019: Workflow Automation in Microservices Architectures... by camunda services GmbH
Camunda Day New York 2019: Workflow Automation in Microservices Architectures...Camunda Day New York 2019: Workflow Automation in Microservices Architectures...
Camunda Day New York 2019: Workflow Automation in Microservices Architectures...
MuCon London 2017: Break your event chains by Bernd Ruecker
MuCon London 2017: Break your event chainsMuCon London 2017: Break your event chains
MuCon London 2017: Break your event chains
Bernd Ruecker2K views
JAX 2019 - Workflow automation reinvented by Bernd Ruecker
JAX 2019 - Workflow automation reinventedJAX 2019 - Workflow automation reinvented
JAX 2019 - Workflow automation reinvented
Bernd Ruecker1.2K views
Long running processes in DDD by Bernd Ruecker
Long running processes in DDDLong running processes in DDD
Long running processes in DDD
Bernd Ruecker8K views
2019 DACH Roadshow - Workflow Automation in Microservices Architectures by Bernd Ruecker
2019 DACH Roadshow - Workflow Automation in Microservices Architectures2019 DACH Roadshow - Workflow Automation in Microservices Architectures
2019 DACH Roadshow - Workflow Automation in Microservices Architectures
Bernd Ruecker657 views
November 2017: Collaboration of (micro-)services by Bernd Ruecker
November 2017: Collaboration of (micro-)servicesNovember 2017: Collaboration of (micro-)services
November 2017: Collaboration of (micro-)services
Bernd Ruecker934 views
Master the flow of microservices - because your business is more complex than... by Bernd Ruecker
Master the flow of microservices - because your business is more complex than...Master the flow of microservices - because your business is more complex than...
Master the flow of microservices - because your business is more complex than...
Bernd Ruecker1.3K views
Picos, CloudOS, and Connecting Things by Phil Windley
Picos, CloudOS, and Connecting ThingsPicos, CloudOS, and Connecting Things
Picos, CloudOS, and Connecting Things
Phil Windley1.8K views
Camunda Day Amsterdam 2019: Workflow Automation in Microservices Architecture... by camunda services GmbH
Camunda Day Amsterdam 2019: Workflow Automation in Microservices Architecture...Camunda Day Amsterdam 2019: Workflow Automation in Microservices Architecture...
Camunda Day Amsterdam 2019: Workflow Automation in Microservices Architecture...
KanDDDinsky: Let your domain events flow by Bernd Ruecker
KanDDDinsky: Let your domain events flowKanDDDinsky: Let your domain events flow
KanDDDinsky: Let your domain events flow
Bernd Ruecker1.2K views
Goto meetup Stockholm - Let your microservices flow by Bernd Ruecker
Goto meetup Stockholm - Let your microservices flowGoto meetup Stockholm - Let your microservices flow
Goto meetup Stockholm - Let your microservices flow
Bernd Ruecker708 views
Moving beyond request reply - designing smarter APIs by Bernd Ruecker
Moving beyond request reply - designing smarter APIsMoving beyond request reply - designing smarter APIs
Moving beyond request reply - designing smarter APIs
Bernd Ruecker431 views
DDD Belgium Meetup 2017: Events, flows and long running services by Bernd Ruecker
DDD Belgium Meetup 2017: Events, flows and long running servicesDDD Belgium Meetup 2017: Events, flows and long running services
DDD Belgium Meetup 2017: Events, flows and long running services
Bernd Ruecker678 views
O'Reilly SA: Complex event flows in distributed systems by Bernd Ruecker
O'Reilly SA: Complex event flows in distributed systemsO'Reilly SA: Complex event flows in distributed systems
O'Reilly SA: Complex event flows in distributed systems
Bernd Ruecker1K views
QCon NYC 2019 - Workflow automation reinvented by Bernd Ruecker
QCon NYC 2019 - Workflow automation reinventedQCon NYC 2019 - Workflow automation reinvented
QCon NYC 2019 - Workflow automation reinvented
Bernd Ruecker780 views

More from Bernd Ruecker

iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas... by
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...Bernd Ruecker
48 views69 slides
JCon Live 2023 - Lice coding some integration problems by
JCon Live 2023 - Lice coding some integration problemsJCon Live 2023 - Lice coding some integration problems
JCon Live 2023 - Lice coding some integration problemsBernd Ruecker
76 views85 slides
JFall - Process Oriented Integration by
JFall - Process Oriented IntegrationJFall - Process Oriented Integration
JFall - Process Oriented IntegrationBernd Ruecker
117 views60 slides
CamundaCon NYC 2023 Keynote - Shifting into overdrive with process orchestration by
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 orchestrationBernd Ruecker
120 views63 slides
JavaLand 2023 - Process Oriented Integration by
JavaLand 2023 - Process Oriented IntegrationJavaLand 2023 - Process Oriented Integration
JavaLand 2023 - Process Oriented IntegrationBernd Ruecker
11 views47 slides
Mastering Data for Higher Business Impact - at Commerzbank Innovation Summit by
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 SummitBernd Ruecker
12 views21 slides

More from Bernd Ruecker(20)

iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas... by Bernd Ruecker
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...
Bernd Ruecker48 views
JCon Live 2023 - Lice coding some integration problems by Bernd Ruecker
JCon Live 2023 - Lice coding some integration problemsJCon Live 2023 - Lice coding some integration problems
JCon Live 2023 - Lice coding some integration problems
Bernd Ruecker76 views
JFall - Process Oriented Integration by Bernd Ruecker
JFall - Process Oriented IntegrationJFall - Process Oriented Integration
JFall - Process Oriented Integration
Bernd Ruecker117 views
CamundaCon NYC 2023 Keynote - Shifting into overdrive with process orchestration by Bernd Ruecker
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
Bernd Ruecker120 views
JavaLand 2023 - Process Oriented Integration by Bernd Ruecker
JavaLand 2023 - Process Oriented IntegrationJavaLand 2023 - Process Oriented Integration
JavaLand 2023 - Process Oriented Integration
Bernd Ruecker11 views
Mastering Data for Higher Business Impact - at Commerzbank Innovation Summit by Bernd Ruecker
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
Bernd Ruecker12 views
Loosely or lousily coupled - Understanding communication patterns in microser... by Bernd Ruecker
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...
Bernd Ruecker142 views
CamundaCon 2022 Keynote: The Process Orchestration Journey by Bernd Ruecker
CamundaCon 2022 Keynote: The Process Orchestration JourneyCamundaCon 2022 Keynote: The Process Orchestration Journey
CamundaCon 2022 Keynote: The Process Orchestration Journey
Bernd Ruecker158 views
JAX 2022 - Loosely or lousily coupled by Bernd Ruecker
JAX 2022 - Loosely or lousily coupledJAX 2022 - Loosely or lousily coupled
JAX 2022 - Loosely or lousily coupled
Bernd Ruecker398 views
JFS 2021 - The Process Automation Map by Bernd Ruecker
JFS 2021 - The Process Automation MapJFS 2021 - The Process Automation Map
JFS 2021 - The Process Automation Map
Bernd Ruecker603 views
JCon 2021 - Loosely or lousily coupled by Bernd Ruecker
JCon 2021 - Loosely or lousily coupledJCon 2021 - Loosely or lousily coupled
JCon 2021 - Loosely or lousily coupled
Bernd Ruecker379 views
CamundaCon 2021 Keynote :From Human Workflow to High-Throughput Process Autom... by Bernd Ruecker
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...
Bernd Ruecker396 views
Kafka Summit 2021 - Apache Kafka meets workflow engines by Bernd Ruecker
Kafka Summit 2021 - Apache Kafka meets workflow enginesKafka Summit 2021 - Apache Kafka meets workflow engines
Kafka Summit 2021 - Apache Kafka meets workflow engines
Bernd Ruecker489 views
Process Automation Forum April 2021 - Practical Process Automation by Bernd Ruecker
Process Automation Forum April 2021 - Practical Process AutomationProcess Automation Forum April 2021 - Practical Process Automation
Process Automation Forum April 2021 - Practical Process Automation
Bernd Ruecker1.2K views
Micronaut Webinar 2021 - Process Automation Introduction by Bernd Ruecker
Micronaut Webinar 2021 - Process Automation IntroductionMicronaut Webinar 2021 - Process Automation Introduction
Micronaut Webinar 2021 - Process Automation Introduction
Bernd Ruecker210 views
Webinar "Communication Between Loosely Coupled Microservices" by Bernd Ruecker
Webinar "Communication Between Loosely Coupled Microservices"Webinar "Communication Between Loosely Coupled Microservices"
Webinar "Communication Between Loosely Coupled Microservices"
Bernd Ruecker1K views
Automating Processes in Modern Architectures by Bernd Ruecker
Automating Processes in Modern ArchitecturesAutomating Processes in Modern Architectures
Automating Processes in Modern Architectures
Bernd Ruecker251 views
OOP 2021 - Leverage the full potential of your hipster architecture by Bernd Ruecker
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
Bernd Ruecker345 views
GOTOpia 2020 - Balancing Choreography and Orchestration by Bernd Ruecker
GOTOpia 2020 - Balancing Choreography and OrchestrationGOTOpia 2020 - Balancing Choreography and Orchestration
GOTOpia 2020 - Balancing Choreography and Orchestration
Bernd Ruecker592 views
Reactive Summit 2020 - How state helps you to stay reactive by Bernd Ruecker
Reactive Summit 2020 - How state helps you to stay reactiveReactive Summit 2020 - How state helps you to stay reactive
Reactive Summit 2020 - How state helps you to stay reactive
Bernd Ruecker233 views

Recently uploaded

GDSC CTU First Meeting Party by
GDSC CTU First Meeting PartyGDSC CTU First Meeting Party
GDSC CTU First Meeting PartyNational Yang Ming Chiao Tung University
11 views25 slides
Vertical User Stories by
Vertical User StoriesVertical User Stories
Vertical User StoriesMoisés Armani Ramírez
17 views16 slides
PRODUCT PRESENTATION.pptx by
PRODUCT PRESENTATION.pptxPRODUCT PRESENTATION.pptx
PRODUCT PRESENTATION.pptxangelicacueva6
18 views1 slide
Ransomware is Knocking your Door_Final.pdf by
Ransomware is Knocking your Door_Final.pdfRansomware is Knocking your Door_Final.pdf
Ransomware is Knocking your Door_Final.pdfSecurity Bootcamp
66 views46 slides
Scaling Knowledge Graph Architectures with AI by
Scaling Knowledge Graph Architectures with AIScaling Knowledge Graph Architectures with AI
Scaling Knowledge Graph Architectures with AIEnterprise Knowledge
50 views15 slides
Kyo - Functional Scala 2023.pdf by
Kyo - Functional Scala 2023.pdfKyo - Functional Scala 2023.pdf
Kyo - Functional Scala 2023.pdfFlavio W. Brasil
418 views92 slides

Recently uploaded(20)

Special_edition_innovator_2023.pdf by WillDavies22
Special_edition_innovator_2023.pdfSpecial_edition_innovator_2023.pdf
Special_edition_innovator_2023.pdf
WillDavies2218 views
Data Integrity for Banking and Financial Services by Precisely
Data Integrity for Banking and Financial ServicesData Integrity for Banking and Financial Services
Data Integrity for Banking and Financial Services
Precisely29 views
Future of AR - Facebook Presentation by ssuserb54b561
Future of AR - Facebook PresentationFuture of AR - Facebook Presentation
Future of AR - Facebook Presentation
ssuserb54b56122 views
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... by James Anderson
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
James Anderson126 views
The Forbidden VPN Secrets.pdf by Mariam Shaba
The Forbidden VPN Secrets.pdfThe Forbidden VPN Secrets.pdf
The Forbidden VPN Secrets.pdf
Mariam Shaba20 views
STKI Israeli Market Study 2023 corrected forecast 2023_24 v3.pdf by Dr. Jimmy Schwarzkopf
STKI Israeli Market Study 2023   corrected forecast 2023_24 v3.pdfSTKI Israeli Market Study 2023   corrected forecast 2023_24 v3.pdf
STKI Israeli Market Study 2023 corrected forecast 2023_24 v3.pdf
Case Study Copenhagen Energy and Business Central.pdf by Aitana
Case Study Copenhagen Energy and Business Central.pdfCase Study Copenhagen Energy and Business Central.pdf
Case Study Copenhagen Energy and Business Central.pdf
Aitana17 views

Complex event flows in distributed systems