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
How To Use Kafka and Druid to Tame Your Router Data (Rachel Pedreschi, Imply ...
PPTX
Jun Rao, Confluent | Kafka Summit SF 2019 Keynote ft. Chris Kasten, Walmart Labs
PDF
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...
PDF
The Art of The Event Streaming Application: Streams, Stream Processors and Sc...
PDF
Event Sourcing, Stream Processing and Serverless (Benjamin Stopford, Confluen...
PPTX
Jay Kreps, Confluent | Kafka Summit SF 2019 Keynote ft. Dev Tagare, Lyft + Pr...
PDF
Event Driven Architecture with a RESTful Microservices Architecture (Kyle Ben...
PDF
Amsterdam meetup at ING June 18, 2019
How To Use Kafka and Druid to Tame Your Router Data (Rachel Pedreschi, Imply ...
Jun Rao, Confluent | Kafka Summit SF 2019 Keynote ft. Chris Kasten, Walmart Labs
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...
The Art of The Event Streaming Application: Streams, Stream Processors and Sc...
Event Sourcing, Stream Processing and Serverless (Benjamin Stopford, Confluen...
Jay Kreps, Confluent | Kafka Summit SF 2019 Keynote ft. Dev Tagare, Lyft + Pr...
Event Driven Architecture with a RESTful Microservices Architecture (Kyle Ben...
Amsterdam meetup at ING June 18, 2019

What's hot (20)

PDF
Kafka as an Event Store (Guido Schmutz, Trivadis) Kafka Summit NYC 2019
PDF
Event Stream Processing with Kafka and Samza
PDF
Understanding Apache Kafka® Latency at Scale
PDF
Confluent Workshop Series: ksqlDB로 스트리밍 앱 빌드
PDF
Etl, esb, mq? no! es Apache Kafka®
PDF
Neha Narkhede | Kafka Summit London 2019 Keynote | Event Streaming: Our Cloud...
PPTX
Samza la hug
PDF
Change Data Capture Pipelines with Debezium and Kafka Streams (Gunnar Morling...
PDF
Applying ML on your Data in Motion with AWS and Confluent | Joseph Morais, Co...
PDF
Architecting Microservices Applications with Instant Analytics
PDF
Event Sourcing - Greg Young
PDF
Cloudstate - Towards Stateful Serverless
PDF
Apache Kafka Scalable Message Processing and more!
PDF
James Watters, Pivotal | Kafka Summit NYC 2019 Keynote (Spring Boot+Kafka: Th...
PPTX
10 Principals for Effective Event Driven Microservices
PDF
Ingesting streaming data into Graph Database
PDF
Crossing the streams viktor gamov
PPTX
A guide through the Azure Messaging services - Update Conference
PDF
3 Ways to Deliver an Elastic, Cost-Effective Cloud Architecture
PDF
Removing performance bottlenecks with Kafka Monitoring and topic configuration
Kafka as an Event Store (Guido Schmutz, Trivadis) Kafka Summit NYC 2019
Event Stream Processing with Kafka and Samza
Understanding Apache Kafka® Latency at Scale
Confluent Workshop Series: ksqlDB로 스트리밍 앱 빌드
Etl, esb, mq? no! es Apache Kafka®
Neha Narkhede | Kafka Summit London 2019 Keynote | Event Streaming: Our Cloud...
Samza la hug
Change Data Capture Pipelines with Debezium and Kafka Streams (Gunnar Morling...
Applying ML on your Data in Motion with AWS and Confluent | Joseph Morais, Co...
Architecting Microservices Applications with Instant Analytics
Event Sourcing - Greg Young
Cloudstate - Towards Stateful Serverless
Apache Kafka Scalable Message Processing and more!
James Watters, Pivotal | Kafka Summit NYC 2019 Keynote (Spring Boot+Kafka: Th...
10 Principals for Effective Event Driven Microservices
Ingesting streaming data into Graph Database
Crossing the streams viktor gamov
A guide through the Azure Messaging services - Update Conference
3 Ways to Deliver an Elastic, Cost-Effective Cloud Architecture
Removing performance bottlenecks with Kafka Monitoring and topic configuration
Ad

Similar to If an Event is Published to a Topic and No One is Around to Consume it, Does it Make a Sound? (Bernd Ruecker, Camunda) Kafka Summit 2020 (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
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)
PDF
Complex event flows in distributed systems (QCon London 2019)
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
PDF
QCon NYC 2019 - Workflow automation reinvented
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
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)
Complex event flows in distributed systems (QCon London 2019)
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
QCon NYC 2019 - Workflow automation reinvented
Ad

More from confluent (20)

PDF
Stream Processing Handson Workshop - Flink SQL Hands-on Workshop (Korean)
PPTX
Webinar Think Right - Shift Left - 19-03-2025.pptx
PDF
Migration, backup and restore made easy using Kannika
PDF
Five Things You Need to Know About Data Streaming in 2025
PDF
Data in Motion Tour Seoul 2024 - Keynote
PDF
Data in Motion Tour Seoul 2024 - Roadmap Demo
PDF
From Stream to Screen: Real-Time Data Streaming to Web Frontends with Conflue...
PDF
Confluent per il settore FSI: Accelerare l'Innovazione con il Data Streaming...
PDF
Data in Motion Tour 2024 Riyadh, Saudi Arabia
PDF
Build a Real-Time Decision Support Application for Financial Market Traders w...
PDF
Strumenti e Strategie di Stream Governance con Confluent Platform
PDF
Compose Gen-AI Apps With Real-Time Data - In Minutes, Not Weeks
PDF
Building Real-Time Gen AI Applications with SingleStore and Confluent
PDF
Unlocking value with event-driven architecture by Confluent
PDF
Il Data Streaming per un’AI real-time di nuova generazione
PDF
Unleashing the Future: Building a Scalable and Up-to-Date GenAI Chatbot with ...
PDF
Break data silos with real-time connectivity using Confluent Cloud Connectors
PDF
Building API data products on top of your real-time data infrastructure
PDF
Speed Wins: From Kafka to APIs in Minutes
PDF
Evolving Data Governance for the Real-time Streaming and AI Era
Stream Processing Handson Workshop - Flink SQL Hands-on Workshop (Korean)
Webinar Think Right - Shift Left - 19-03-2025.pptx
Migration, backup and restore made easy using Kannika
Five Things You Need to Know About Data Streaming in 2025
Data in Motion Tour Seoul 2024 - Keynote
Data in Motion Tour Seoul 2024 - Roadmap Demo
From Stream to Screen: Real-Time Data Streaming to Web Frontends with Conflue...
Confluent per il settore FSI: Accelerare l'Innovazione con il Data Streaming...
Data in Motion Tour 2024 Riyadh, Saudi Arabia
Build a Real-Time Decision Support Application for Financial Market Traders w...
Strumenti e Strategie di Stream Governance con Confluent Platform
Compose Gen-AI Apps With Real-Time Data - In Minutes, Not Weeks
Building Real-Time Gen AI Applications with SingleStore and Confluent
Unlocking value with event-driven architecture by Confluent
Il Data Streaming per un’AI real-time di nuova generazione
Unleashing the Future: Building a Scalable and Up-to-Date GenAI Chatbot with ...
Break data silos with real-time connectivity using Confluent Cloud Connectors
Building API data products on top of your real-time data infrastructure
Speed Wins: From Kafka to APIs in Minutes
Evolving Data Governance for the Real-time Streaming and AI Era

Recently uploaded (20)

PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
Cloud computing and distributed systems.
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Big Data Technologies - Introduction.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Approach and Philosophy of On baking technology
PDF
cuic standard and advanced reporting.pdf
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
NewMind AI Monthly Chronicles - July 2025
PPTX
A Presentation on Artificial Intelligence
Advanced methodologies resolving dimensionality complications for autism neur...
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Cloud computing and distributed systems.
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Review of recent advances in non-invasive hemoglobin estimation
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Encapsulation_ Review paper, used for researhc scholars
MYSQL Presentation for SQL database connectivity
Big Data Technologies - Introduction.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
20250228 LYD VKU AI Blended-Learning.pptx
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Approach and Philosophy of On baking technology
cuic standard and advanced reporting.pdf
Chapter 3 Spatial Domain Image Processing.pdf
NewMind AI Monthly Chronicles - July 2025
A Presentation on Artificial Intelligence

If an Event is Published to a Topic and No One is Around to Consume it, Does it Make a Sound? (Bernd Ruecker, Camunda) Kafka Summit 2020