SlideShare a Scribd company logo
If an event is published to a topic
and no one is around to consume it,
does it make a sound?
Bernd Ruecker
Co-Founder and Chief Technologist of Camunda
@berndruecker
Warning:
This talk might contain nonsense
@berndruecker
People that understand
functional programming
The others
@berndruecker
SELECT name
FROM people
WHERE city = `Berlin´
reader = new BufferedReader(new FileReader("people.txt"));
while ((row = reader.readLine()) != null) {
String[] data = row.split(",");
if ("Berlin".equals(data[3])) { // city
System.out.println(data[1]); // name
}
}
reader.close();
@berndruecker
Declarative
Thinking
Imperative
Thinking
What
Functional
How
@berndruecker
@berndruecker
Functional programming, reactive & streaming = the greatest thing since sliced bread!
… the term Event Stream becomes widely
adopted and promotes a new mental model
of how the systems are implemented.
… the main abstraction in use is a
composition of [stateless] functions
performing transformation on immutable
events. The output of an overall system can
be modeled as the application of those
composed functions on the input stream.
https://medium.com/holisticon-consultants/from-stream-to-state-eb1cade5d403
@berndruecker
Functions
Immutable Events
Event Streams
State
Input / Output
…and actions in the real world…
@berndruecker
Connor Riley
#Cisco just offered me a job!
Connor Riley
#Cisco just offered me a job! Now I
have to weigh the utility of a fatty
paycheck against the daily commute to
San Jose and hating the work.
@berndruecker
#Cisco just offered me a job!
Connor Riley
#Cisco just offered me a job! Now I
have to weigh the utility of a fatty
paycheck against the daily commute to
San Jose and hating the work.
Event goes into the stream
Stateless Stream Processor
Filter all tweets
with #cisco
Stateless Stream Processor
Find offensive
tweets
Tim Levad (Cisco employee)
Who is the hiring manager? I’m sure
they would love to know that you will
hate the work. We here at Cisco are
versed in the Web.
Action
Input
Output
→ Job offer revoked
@berndruecker
Replay?
@berndruecker
Replay?
@berndruecker
#Cisco just offered me a job!
Connor Riley
#Cisco just offered me a job! Now I
have to weigh the utility of a fatty
paycheck against the daily commute to
San Jose and hating the work.
Event goes into the stream
Stateless Stream Processor
Filter all tweets
with #cisco
Refine / change logic
Find offensive
tweets
Tim Levad (Cisco employee)
Who is the hiring manager? I’m sure
they would love to know that you will
hate the work. We here at Cisco are
versed in the Web.
Action
Input
Output
@berndruecker
#Cisco just offered me a job!
Connor Riley
#Cisco just offered me a job! Now I
have to weigh the utility of a fatty
paycheck against the daily commute to
San Jose and hating the work.
Event goes into the stream
Stateless Stream Processor
Filter all tweets
with #cisco
Find offensive
tweets
Tim Levad (Cisco employee)
Who is the hiring manager? I’m sure
they would love to know that you will
hate the work. We here at Cisco are
versed in the Web.
Action
Input
Output
@berndruecker
State?
@berndruecker
#Cisco just offered me a job!
Stateless Stream Processor
Filter all tweets
with #cisco
tweets
Filter tweets with
similar content
within 15 minutes
time
Stateful Stream Processor
State is
in the
API!
@berndruecker
#Cisco just offered me a job!
Stateless Stream Processor
Filter all tweets
with #cisco
tweets
Filter tweets from
our top community
members
Stateful Component
(as stateless stream processor)
State is in the
component
@berndruecker
#Cisco just offered me a job!
tweets
Enrich tweet with
personal information
of sender
lookup
Bad, because
- Load on API
- Availability
- Other disadvantages of synchronous remote communication
@berndruecker
#Cisco just offered me a job!
tweets
Person stream
Stateful Stream Processor
Enrich tweet
@berndruecker
#Cisco just offered me a job!
tweets
Stateful Stream Processor
Persons that tweeted
Enrich tweet
Gather personal
info
@berndruecker
#Cisco just offered me a job!
tweets
Stateful Stream Processor
THIS is
workflow logic!
Workflow
engines can
hold state
Enrich tweet
Gather personal
info
@berndruecker
Persons that tweeted
#Cisco just offered me a job!
tweets
Stateful Stream Processor
Workflow
engines can
hold state
Enrich tweet
Gather personal
info
Publish /
subscribe
Mitigates problems of synchronous communication!
@berndruecker
Example
workflowClient.newWorker()
.jobType("person-lookup")
.handler((jobClient, job) -> {
System.out.println("Gather personal information");
jobClient.newCompleteCommand(job.getKey()).send().join();
}).open();
publish / subscribe
@berndruecker
client.newCreateInstanceCommand()
.bpmnProcessId("enrich-tweet")
.variables(...)
.latestVersion()
.send().join();
client.newCreateInstanceCommand() .bpmnProcessId("order-process") .latestVersion() .send() .join();
Or use the Zeebe Kafka Connector
Declarative
Thinking
Imperative
Thinking
Or is it just me?
@berndruecker
Berlin, Germany
http://berndruecker.io/
mail@berndruecker.io
@berndruecker
Bernd Ruecker
Co-founder and
Chief Technologist of
Camunda
Where do we stand now?
State goes into
Stream
Processor API
Component
Workflow Engine*
*helps to implement common patterns in stateful components
@berndruecker
Where do we stand?
State goes into
Stream
Processor API
Component
Workflow Engine
This translation
requires additional
thought!
@berndruecker
Let‘s do another example:
Vehicle Maintenance
ActionInsightsMeasurements
generates Leads to
oil pressure is
80 psi
oil pressure is
critically high
Schedule
maintenance
Call driver to
stop and inspect
…
@berndruecker
ActionInsightsMeasurements
generates Leads to
oil pressure is
80 psi
oil pressure is
critically high
Schedule
maintenance
Kafka Topic
Measures
Kafka Topic
Insights
Camunda Workflow
Maintenance
Stateful
Stream
Processor
@berndruecker
ActionInsightsMeasurements
generates Leads to
oil pressure is
80 psi
oil pressure is
critically high
Schedule
maintenance
Kafka Topic
Measures
Kafka Topic
Insights
Camunda Workflow
Maintenance
Stateful
Stream
Processor
Decision
Custom Connector
with own state
WorkflowsEvent Streams
@berndruecker
Connecting two worlds
Event
ID: 555444333222111
Asset: Bus_4736_Motor
Time: 1593685892
Insight: oil_pressure_critical
CorrelationKey:
Bus_4736_Motor_oil_pressure_critical
Custom
Connector
@berndruecker
Connecting two worlds
Event
ID: 555444333222111
Asset: Bus_4736_Motor
Time: 1593685892
Insight: oil_pressure_critical
CorrelationKey:
Bus_4736_Motor_oil_pressure_critical
Event
ID: 555444333222111
Asset: Bus_4736_Motor
Time: 1593685892
Insight: oil_pressure_critical
CorrelationKey:
Bus_4736_Motor_oil_pressure_critical
Deduplicate
Messages
Custom
Connector
@berndruecker
Connecting two worlds
Event
ID: 555444333222111
Asset: Bus_4736_Motor
Time: 1593685892
Insight: oil_pressure_critical
CorrelationKey:
Bus_4736_Motor_oil_pressure_critical
Event
ID: 666555444333222
Asset: Bus_4736_Motor
Time: 1593611320
Insight: oil_pressure_critical
CorrelationKey:
Bus_4736_Motor_oil_pressure_critical
Semantic
Aggregation
Custom
Connector
@berndruecker
Connecting two worlds
Event
ID: 555444333222111
Asset: Bus_4736_Motor
Time: 1593685892
Insight:
oil_pressure_critical_for_too_long
CorrelationKey:
Bus_4736_Motor_oil_pressure_...
Custom
Connector
Time windowing
is done in
stream processing
@berndruecker
Connecting two worlds
Event
ID: 555444333222111
Asset: Bus_4736_Motor
Time: 1593685892
Insight: oil_pressure_critical
CorrelationKey:
Bus_4736_Motor_oil_pressure_critical
Event
ID: 777666555444333
Asset: Bus_4736_Motor
Time: 1593900001
Insight: oil_pressure_normal
CorrelationKey:
Bus_4736_Motor_oil_pressure_normal
Semantic
Aggregation
STARTNEW
WORKFLOW
STARTOR KEEP
WORKFLOW
CLOSE
WORKFLOW
Custom
Connector
@berndruecker
Workflow
@berndruecker
ActionInsightsMeasurements
generates Leads to
oil pressure is
80 psi
oil pressure is
critically high
Schedule
maintenance
Kafka Topic
Measures
Kafka Topic
Insights
Camunda Workflow
Maintenance
Stateful
Stream
Processor
Decision
WorkflowsEvent Streams
@berndruecker
Custom
Connector
ActionInsightsMeasurements
generates Leads to
Kafka Topic
Measures
Kafka Topic
Insights
Camunda Workflow
Maintenance
Stateful
Stream
Processor
Decision
Custom
Connector
WorkflowsEvent Streams
This regularly changed and
the stream of events was replayed
@berndruecker
Connecting two worldsCustom
Connector
- Deduplication
- Semantic Aggregation
- Start, correlate to or cancel workflow instances
- Handle replays
- …
Streaming
Workflow
@berndruecker
Some details
https://medium.com/holisticon-consultants/from-stream-to-state-eb1cade5d403
Summary
• Streams need to lead to actions outside the control of the
streams architecture (otherwise nothing has really happened)
• Where to handle state is a difficult question
• Streams vs. Workflow might be about declarative vs.
imperative thinking (what does your team understand?)
• But streams and workflows also go hand in hand. Getting
from stream to workflow involves a translation component
@berndruecker
https://blog.bernd-ruecker.com/
zeebe-loves-kafka-d82516030f99
@berndruecker
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

PDF
Moving beyond request reply - designing smarter APIs
PDF
Complex event flows in distributed systems (QCon London 2019)
PDF
2019 - Lost in transaction
PDF
Complex event flows in distributed systems
PDF
Serverless Days 2019 - Lost in transaction
PDF
Reactive Summit 2020 - How state helps you to stay reactive
PDF
Monitoring and Orchestration of your Microservices Landscape with Kafka and Z...
PDF
Apache Kafka Meets Workflow Engines | Bernd Ruecker, Camunda
Moving beyond request reply - designing smarter APIs
Complex event flows in distributed systems (QCon London 2019)
2019 - Lost in transaction
Complex event flows in distributed systems
Serverless Days 2019 - Lost in transaction
Reactive Summit 2020 - How state helps you to stay reactive
Monitoring and Orchestration of your Microservices Landscape with Kafka and Z...
Apache Kafka Meets Workflow Engines | Bernd Ruecker, Camunda

What's hot (20)

PDF
QCon NYC 2019 - Workflow automation reinvented
PDF
Monitoring and Orchestration of your Microservices Landscape with Kafka and Z...
PDF
Digitalization and Workflow Automation - Camunda Process Automation Forum
PDF
Camunda Con 2019 Keynote - I want my process back #microservices #serverless
PDF
GOTOpia 2020 - Balancing Choreography and Orchestration
PDF
Camunda Con Live 2020 Keynote - Microservice Orchestration and Integration
PDF
JCon 2021 - Loosely or lousily coupled
PDF
Process Automation Forum April 2021 - Practical Process Automation
PDF
Lost in transaction - Strategies to deal with (in)consistency in distributed ...
PDF
JAX 2019 - Workflow automation reinvented
PDF
AWS Community Summit London 2019 - Lost in transaction
PDF
Destination Automation: Automating Processes in Modern Hipster Architectures
PDF
Workflow automation with BPMN. Lessons learned.
PDF
DDD Europe 2019: Lost in transaction
PDF
Automating Processes in Modern Architectures
PDF
Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...
PDF
Microservices with Camunda - Talk from Camunda Days 01/2018
PDF
Kafka Summit 2021 - Apache Kafka meets workflow engines
PDF
Jfokus 2018: Lost in transaction - Strategies to deal with (in-)consistency ...
PDF
JFS 2021 - The Process Automation Map
QCon NYC 2019 - Workflow automation reinvented
Monitoring and Orchestration of your Microservices Landscape with Kafka and Z...
Digitalization and Workflow Automation - Camunda Process Automation Forum
Camunda Con 2019 Keynote - I want my process back #microservices #serverless
GOTOpia 2020 - Balancing Choreography and Orchestration
Camunda Con Live 2020 Keynote - Microservice Orchestration and Integration
JCon 2021 - Loosely or lousily coupled
Process Automation Forum April 2021 - Practical Process Automation
Lost in transaction - Strategies to deal with (in)consistency in distributed ...
JAX 2019 - Workflow automation reinvented
AWS Community Summit London 2019 - Lost in transaction
Destination Automation: Automating Processes in Modern Hipster Architectures
Workflow automation with BPMN. Lessons learned.
DDD Europe 2019: Lost in transaction
Automating Processes in Modern Architectures
Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...
Microservices with Camunda - Talk from Camunda Days 01/2018
Kafka Summit 2021 - Apache Kafka meets workflow engines
Jfokus 2018: Lost in transaction - Strategies to deal with (in-)consistency ...
JFS 2021 - The Process Automation Map
Ad

Similar to Kafka Summit 2020: If an event is published to a topic and no one is around to consume it, does it make a sound? (20)

PDF
Assisting millions of active users in real-time - Alexey Brodovshuk, Kcell; K...
PDF
Complex event processing platform handling millions of users - Krzysztof Zarz...
PDF
Flink Forward Berlin 2018: Krzysztof Zarzycki & Alexey Brodovshuk - "Assistin...
PPTX
Kafka Summit NYC 2017 - Data Processing at LinkedIn with Apache Kafka
PDF
Building an Enterprise Eventing Framework
PPTX
Jun Rao, Confluent | Kafka Summit SF 2019 Keynote ft. Chris Kasten, Walmart Labs
PPTX
Flink Forward San Francisco 2018: David Reniz & Dahyr Vergara - "Real-time m...
PDF
Unified Stream & Batch Processing with Apache Flink (Hadoop Summit Dublin 2016)
PPTX
When ordering Matters - Flink Forward EU - Berlin - 2019
ODP
Batch processing in EDA (Event Driven Architectures)
PPT
Perpetual Analytics - Health in Motion
PPTX
January 2016 Flink Community Update & Roadmap 2016
PPTX
Trivento summercamp masterclass 9/9/2016
PDF
Stream Processing and Complex Event Processing together with Kafka, Flink and...
PPTX
Stress Testing at Twitter: a tale of New Year Eves
PDF
Deliver Business Value Faster with AWS Step Functions
PDF
Fast Data – Fast Cars: Wie Apache Kafka die Datenwelt revolutioniert
PDF
ATAED2016 Montali - Marrying data and processes: from model to event data ana...
PPTX
ER 2013 tutorial: modeling the event driven world
PPTX
Big Data Day LA 2016/ Hadoop/ Spark/ Kafka track - Building an Event-oriented...
Assisting millions of active users in real-time - Alexey Brodovshuk, Kcell; K...
Complex event processing platform handling millions of users - Krzysztof Zarz...
Flink Forward Berlin 2018: Krzysztof Zarzycki & Alexey Brodovshuk - "Assistin...
Kafka Summit NYC 2017 - Data Processing at LinkedIn with Apache Kafka
Building an Enterprise Eventing Framework
Jun Rao, Confluent | Kafka Summit SF 2019 Keynote ft. Chris Kasten, Walmart Labs
Flink Forward San Francisco 2018: David Reniz & Dahyr Vergara - "Real-time m...
Unified Stream & Batch Processing with Apache Flink (Hadoop Summit Dublin 2016)
When ordering Matters - Flink Forward EU - Berlin - 2019
Batch processing in EDA (Event Driven Architectures)
Perpetual Analytics - Health in Motion
January 2016 Flink Community Update & Roadmap 2016
Trivento summercamp masterclass 9/9/2016
Stream Processing and Complex Event Processing together with Kafka, Flink and...
Stress Testing at Twitter: a tale of New Year Eves
Deliver Business Value Faster with AWS Step Functions
Fast Data – Fast Cars: Wie Apache Kafka die Datenwelt revolutioniert
ATAED2016 Montali - Marrying data and processes: from model to event data ana...
ER 2013 tutorial: modeling the event driven world
Big Data Day LA 2016/ Hadoop/ Spark/ Kafka track - Building an Event-oriented...
Ad

More from Bernd Ruecker (19)

PDF
QCon London: Mastering long-running processes in modern architectures
PDF
WeAreDevelopers Live 2024 - Mastering long-running processes in modern archit...
PDF
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
PDF
JCon Live 2023 - Lice coding some integration problems
PDF
JFall - Process Oriented Integration
PDF
CamundaCon NYC 2023 Keynote - Shifting into overdrive with process orchestration
PDF
JavaLand 2023 - Process Oriented Integration
PDF
CraftConf: Surviving the hyperautomation low code bubbl
PDF
Mastering Data for Higher Business Impact - at Commerzbank Innovation Summit
PDF
Camunda Chapter Hamburg - Surviving the hyperautomation low code bubble
PDF
Loosely or lousily coupled - Understanding communication patterns in microser...
PDF
CamundaCon 2022 Keynote: The Process Orchestration Journey
PDF
JAX 2022 - Loosely or lousily coupled
PDF
CamundaCon 2021 Keynote :From Human Workflow to High-Throughput Process Autom...
PDF
Micronaut Webinar 2021 - Process Automation Introduction
PDF
Webinar "Communication Between Loosely Coupled Microservices"
PDF
OOP 2021 - Leverage the full potential of your hipster architecture
PDF
CamundaCon 2020 Keynote - The Return of Process Automation
PDF
Camunda Meetup: Rethink Business Processes and User Experience to Leverage Th...
QCon London: Mastering long-running processes in modern architectures
WeAreDevelopers Live 2024 - Mastering long-running processes in modern archit...
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
JCon Live 2023 - Lice coding some integration problems
JFall - Process Oriented Integration
CamundaCon NYC 2023 Keynote - Shifting into overdrive with process orchestration
JavaLand 2023 - Process Oriented Integration
CraftConf: Surviving the hyperautomation low code bubbl
Mastering Data for Higher Business Impact - at Commerzbank Innovation Summit
Camunda Chapter Hamburg - Surviving the hyperautomation low code bubble
Loosely or lousily coupled - Understanding communication patterns in microser...
CamundaCon 2022 Keynote: The Process Orchestration Journey
JAX 2022 - Loosely or lousily coupled
CamundaCon 2021 Keynote :From Human Workflow to High-Throughput Process Autom...
Micronaut Webinar 2021 - Process Automation Introduction
Webinar "Communication Between Loosely Coupled Microservices"
OOP 2021 - Leverage the full potential of your hipster architecture
CamundaCon 2020 Keynote - The Return of Process Automation
Camunda Meetup: Rethink Business Processes and User Experience to Leverage Th...

Recently uploaded (20)

PPTX
MYSQL Presentation for SQL database connectivity
PDF
cuic standard and advanced reporting.pdf
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPTX
Big Data Technologies - Introduction.pptx
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Empathic Computing: Creating Shared Understanding
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
KodekX | Application Modernization Development
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
MYSQL Presentation for SQL database connectivity
cuic standard and advanced reporting.pdf
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Big Data Technologies - Introduction.pptx
Programs and apps: productivity, graphics, security and other tools
Understanding_Digital_Forensics_Presentation.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Empathic Computing: Creating Shared Understanding
20250228 LYD VKU AI Blended-Learning.pptx
Digital-Transformation-Roadmap-for-Companies.pptx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
KodekX | Application Modernization Development
Mobile App Security Testing_ A Comprehensive Guide.pdf
Unlocking AI with Model Context Protocol (MCP)
The Rise and Fall of 3GPP – Time for a Sabbatical?
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx

Kafka Summit 2020: If an event is published to a topic and no one is around to consume it, does it make a sound?