SlideShare a Scribd company logo
Using Kafka: the Flowable Event Registry
Joram Barrez (@jbarrez)
Filip Hrisafov (@filiphr)
©2019FlowableAG. All rights reserved.
Event-Driven Architectures
• In the Flowable community, we have seen
• People experimenting with event-driven/event-sourcing
architectures
• (or more often architectures enriched with events)
• Demand for out-of-the-box support
2
©2019FlowableAG. All rights reserved.
Event-Driven Architectures
• A process/case fits naturally
• Can be the ‘Command’ of an event
(e.g. the C in CQRS)
• Have state to react on the change expressed in the event
(state is often the hard part of event-sourcing)
3
©2019FlowableAG. All rights reserved.
Quick Demo
4
©2019FlowableAG. All rights reserved.
Implementation – The event registry
5
Flowable
Engine
EventRegistry
EventBus
EventDefinitionEventDefinitionEventDefinition
Consumers
Central repository of event metadata
Dispatches events to consumers
(default process/case behaviors are also a consumer)
Description of event structure:
- Payload
- Correlation
©2019FlowableAG. All rights reserved.
Implementation – Channels and Pipelines
6
Flowable
Engine
EventRegistry
EventBus
Channel Adapter
Event Consumer
Inbound Channel
Inbound Pipeline
Deserialization
Event key detection
* All shown here on the slide are pluggable
Payload extraction
Event transformation
©2019FlowableAG. All rights reserved.
Implementation – Channels and Pipelines
7
Flowable
Engine
EventRegistry
EventBus
Channel Adapter
Event Producer
Outbound Channel
Outbound Pipeline
Serialization
Event transformation
Demo
https://github.com/flowable/flowable-examples/tree/master/devoxx2019
©2019FlowableAG. All rights reserved.
• Fictional electrical kick-
scooter startup
• Customer satisfaction is
priority #1
Use Case
9
©2019FlowableAG. All rights reserved.
• Customer can provide a review
• Review à Kafka
• A customer case
• Groups all reviews
• Kicks of a sentiment analysis process
• Analysis is done using a process that
calls out to AWS Comprehend
• Bad review à A task for an
employee is created to try to fix the
relationship
Use Case
10
©2019FlowableAG. All rights reserved.
Architecture
11
* (5th service (Spring Cloud API gateway) not shown to simplify things)
UI for customers
Review Service
Customer
Relationship
Service
Flowable Task
Sentiment Analysis
service
UI for employees
AWS Comprehend
Review Event
Review Event Analysis
Result
Analysis
Result
Analysis
Request
Analysis
Request
©2019FlowableAG. All rights reserved.
Demo: The models explained
12
©2019FlowableAG. All rights reserved.
Demo
• Simulating reviews
• Stepping through a bad user review
13
©2019FlowableAG. All rights reserved.
Demo: Review Service
• Simple Spring Webflux REST API
• Reactive pushing of events from UI into Kafka
14
©2019FlowableAG. All rights reserved.
Demo: Customer Case Service
• Spring Boot application
• Flowable Spring Boot starters
• Autodeploy cases and process models
• Register event channels and definitions
• Postgres DB
15
©2019FlowableAG. All rights reserved.
Demo: Customer Case Service
• The sentiment process doesn’t use the ‘old way’
• Send-and-wait-for-response pattern
• Race condition problem
16
©2019FlowableAG. All rights reserved.
Demo: Customer Case Service
• The sentiment process uses a triggerable service task
17
• During execution (tx1)
• Create event subscription
• Create async job data (to send event)
• Post-commit (tx2)
• Trigger job executor (or other node)
• Send event asynchronously
• Go into wait state
• Event receival (tx3)
• Trigger for continuation
©2019FlowableAG. All rights reserved.
Demo: Customer Case Service
• Can this also be made reactive?
• Yes!
• Nicely scaling of message stream handling depending on load
• (insertion of async Flowable job at event receival using R2DBC)
18
©2019FlowableAG. All rights reserved.
Demo: The Sentiment Analysis Service
• Spring Boot application
• Flowable Spring Boot starters
• Autodeploy process model
• Uses AWS SDK to call out to AWS Comprehend
19
©2019FlowableAG. All rights reserved.
Demo: Flowable Task
• Bad review à employee form
20
©2019FlowableAG. All rights reserved.
Demo: The Sentiment Analysis Service
• This service is effectively a function
• Can be run serverless
• With all the benefits of using Flowable
• Visual models, audit/history, etc.
21
©2019FlowableAG. All rights reserved.
Serverless Core Concepts
• Ephemeral (short living)
• Only booted up when needed
• Cold starts
• Auto scaling
• Heavy load à boot up more instances
• No Server management
• Logic is deployed to a ‘serverless provider’
• Don’t care, up to the cloud vendor
• Pay as you use
22
©2019FlowableAG. All rights reserved.
What is serverless?
• A better name would be ‘on-demand/event server’
• (it’s still running on a server)
23
©2019FlowableAG. All rights reserved.
Flowable Serverless (Experimental)
• Challenges
• Cold start
• State
• Solutions
• In memory (no Database)
• No wait states (straight-through processes)
24
©2019FlowableAG. All rights reserved.
What is serverless?
• Example: Amazon AWS Lambda
• AWS Lamba in/out can be chained to the whole AWS ecosystem:
S3/SQS/Alexa/DynamoDB/…
25
©2019FlowableAG. All rights reserved.
Architecture
26
* (5th service (Spring Cloud API gateway) not shown to simplify things)
UI for customers
Review Service
Customer
Relationship
Service
Flowable Task
Sentiment Analysis
service
UI for employees
AWS Comprehend
Review Event
Review Event Analysis
Result
Analysis
Result
Analysis
Request
Analysis
Request
©2019FlowableAG. All rights reserved.
AWS Architecture
27
AWS Cloud
API
Gateway
AWS SQS
Review Event
Frontend
(S3)
Review Event
Analysis
Request Analysis
Result
Analysis
Request
Analysis
Result
Customer Review
Application (EC2)
Sentiment
Analysis
Browser
Comprehe
nd
©2019FlowableAG. All rights reserved.
Review Service Differences
• Doesn’t exist J
• API Gateway pushes events directly to Amazon SQS
28
©2019FlowableAG. All rights reserved.
Customer Case Service Differences
• Listens from Amazon SQS instead of Kafka
• The channel/adapter concept makes this very flexible
• Without impact on using the events in the model
29
©2019FlowableAG. All rights reserved.
Sentiment Analysis Service Differences
• Flowable with in memory DB (no SQL)
• Triggers via Amazon SQS as a Lambda
• Timing (with 256MB Lambda)
• Cold start billed 30s / Engine start 6s / Deploy 1.2s
• Preheat start: billed 1s / Engine start 60ms / Deploy 80ms
• Sends analysis results synchronously to Amazon SQS
30
©2019FlowableAG. All rights reserved.
Serverless: No Free Lunch
• Vendor lock-in
• Security?
• Debugging?
31
©2019FlowableAG. All rights reserved.
Future Ideas
• Aurora serverless
• Passing state around with event payload
32
©2019FlowableAG. All rights reserved.
Conclusions
• We’ve shown that
• using Flowable in event-driven architectures is easy, yet very
powerful
• Flowable is extremely flexible when it comes to
• switching queue/event stream choice
• deploying your Flowable applications in different environments
• running a process as a serverless function
33
Thank you.

More Related Content

What's hot

Walking through the Spring Stack for Apache Kafka with Soby Chacko | Kafka S...
 Walking through the Spring Stack for Apache Kafka with Soby Chacko | Kafka S... Walking through the Spring Stack for Apache Kafka with Soby Chacko | Kafka S...
Walking through the Spring Stack for Apache Kafka with Soby Chacko | Kafka S...
HostedbyConfluent
 
Scaling Push Messaging for Millions of Netflix Devices
Scaling Push Messaging for Millions of Netflix DevicesScaling Push Messaging for Millions of Netflix Devices
Scaling Push Messaging for Millions of Netflix Devices
Susheel Aroskar
 
CMMN makes BPMN smarter and engaging
CMMN makes BPMN smarter and engagingCMMN makes BPMN smarter and engaging
CMMN makes BPMN smarter and engaging
Flowable
 
Dynamic Rule-based Real-time Market Data Alerts
Dynamic Rule-based Real-time Market Data AlertsDynamic Rule-based Real-time Market Data Alerts
Dynamic Rule-based Real-time Market Data Alerts
Flink Forward
 
How HSBC Uses Serverless to Process Millions of Transactions in Real Time (FS...
How HSBC Uses Serverless to Process Millions of Transactions in Real Time (FS...How HSBC Uses Serverless to Process Millions of Transactions in Real Time (FS...
How HSBC Uses Serverless to Process Millions of Transactions in Real Time (FS...
Amazon Web Services
 
Apache Kafka in the Transportation and Logistics
Apache Kafka in the Transportation and LogisticsApache Kafka in the Transportation and Logistics
Apache Kafka in the Transportation and Logistics
Kai Wähner
 
How to Design a Multi-Region Active-Active Architecture
How to Design a Multi-Region Active-Active ArchitectureHow to Design a Multi-Region Active-Active Architecture
How to Design a Multi-Region Active-Active Architecture
Amazon Web Services
 
GDPR compliance application architecture and implementation using Hadoop and ...
GDPR compliance application architecture and implementation using Hadoop and ...GDPR compliance application architecture and implementation using Hadoop and ...
GDPR compliance application architecture and implementation using Hadoop and ...
DataWorks Summit
 
Kubernetes Summit 2021: Multi-Cluster - The Good, the Bad and the Ugly
Kubernetes Summit 2021: Multi-Cluster - The Good, the Bad and the UglyKubernetes Summit 2021: Multi-Cluster - The Good, the Bad and the Ugly
Kubernetes Summit 2021: Multi-Cluster - The Good, the Bad and the Ugly
smalltown
 
Microservices Architecture Part 2 Event Sourcing and Saga
Microservices Architecture Part 2 Event Sourcing and SagaMicroservices Architecture Part 2 Event Sourcing and Saga
Microservices Architecture Part 2 Event Sourcing and Saga
Araf Karsh Hamid
 
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
confluent
 
A Reference Architecture for ETL 2.0
A Reference Architecture for ETL 2.0 A Reference Architecture for ETL 2.0
A Reference Architecture for ETL 2.0
DataWorks Summit
 
Where is my bottleneck? Performance troubleshooting in Flink
Where is my bottleneck? Performance troubleshooting in FlinkWhere is my bottleneck? Performance troubleshooting in Flink
Where is my bottleneck? Performance troubleshooting in Flink
Flink Forward
 
Event Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMware
Event Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMwareEvent Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMware
Event Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMware
HostedbyConfluent
 
Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?
confluent
 
ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!
Guido Schmutz
 
Apache Kafka and KSQL in Action: Let's Build a Streaming Data Pipeline!
Apache Kafka and KSQL in Action: Let's Build a Streaming Data Pipeline!Apache Kafka and KSQL in Action: Let's Build a Streaming Data Pipeline!
Apache Kafka and KSQL in Action: Let's Build a Streaming Data Pipeline!
confluent
 
A Deep Dive into Stateful Stream Processing in Structured Streaming with Tath...
A Deep Dive into Stateful Stream Processing in Structured Streaming with Tath...A Deep Dive into Stateful Stream Processing in Structured Streaming with Tath...
A Deep Dive into Stateful Stream Processing in Structured Streaming with Tath...
Databricks
 
Confluent REST Proxy and Schema Registry (Concepts, Architecture, Features)
Confluent REST Proxy and Schema Registry (Concepts, Architecture, Features)Confluent REST Proxy and Schema Registry (Concepts, Architecture, Features)
Confluent REST Proxy and Schema Registry (Concepts, Architecture, Features)
Kai Wähner
 
[115]쿠팡 서비스 클라우드 마이그레이션 통해 배운것들
[115]쿠팡 서비스 클라우드 마이그레이션 통해 배운것들[115]쿠팡 서비스 클라우드 마이그레이션 통해 배운것들
[115]쿠팡 서비스 클라우드 마이그레이션 통해 배운것들
NAVER D2
 

What's hot (20)

Walking through the Spring Stack for Apache Kafka with Soby Chacko | Kafka S...
 Walking through the Spring Stack for Apache Kafka with Soby Chacko | Kafka S... Walking through the Spring Stack for Apache Kafka with Soby Chacko | Kafka S...
Walking through the Spring Stack for Apache Kafka with Soby Chacko | Kafka S...
 
Scaling Push Messaging for Millions of Netflix Devices
Scaling Push Messaging for Millions of Netflix DevicesScaling Push Messaging for Millions of Netflix Devices
Scaling Push Messaging for Millions of Netflix Devices
 
CMMN makes BPMN smarter and engaging
CMMN makes BPMN smarter and engagingCMMN makes BPMN smarter and engaging
CMMN makes BPMN smarter and engaging
 
Dynamic Rule-based Real-time Market Data Alerts
Dynamic Rule-based Real-time Market Data AlertsDynamic Rule-based Real-time Market Data Alerts
Dynamic Rule-based Real-time Market Data Alerts
 
How HSBC Uses Serverless to Process Millions of Transactions in Real Time (FS...
How HSBC Uses Serverless to Process Millions of Transactions in Real Time (FS...How HSBC Uses Serverless to Process Millions of Transactions in Real Time (FS...
How HSBC Uses Serverless to Process Millions of Transactions in Real Time (FS...
 
Apache Kafka in the Transportation and Logistics
Apache Kafka in the Transportation and LogisticsApache Kafka in the Transportation and Logistics
Apache Kafka in the Transportation and Logistics
 
How to Design a Multi-Region Active-Active Architecture
How to Design a Multi-Region Active-Active ArchitectureHow to Design a Multi-Region Active-Active Architecture
How to Design a Multi-Region Active-Active Architecture
 
GDPR compliance application architecture and implementation using Hadoop and ...
GDPR compliance application architecture and implementation using Hadoop and ...GDPR compliance application architecture and implementation using Hadoop and ...
GDPR compliance application architecture and implementation using Hadoop and ...
 
Kubernetes Summit 2021: Multi-Cluster - The Good, the Bad and the Ugly
Kubernetes Summit 2021: Multi-Cluster - The Good, the Bad and the UglyKubernetes Summit 2021: Multi-Cluster - The Good, the Bad and the Ugly
Kubernetes Summit 2021: Multi-Cluster - The Good, the Bad and the Ugly
 
Microservices Architecture Part 2 Event Sourcing and Saga
Microservices Architecture Part 2 Event Sourcing and SagaMicroservices Architecture Part 2 Event Sourcing and Saga
Microservices Architecture Part 2 Event Sourcing and Saga
 
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
 
A Reference Architecture for ETL 2.0
A Reference Architecture for ETL 2.0 A Reference Architecture for ETL 2.0
A Reference Architecture for ETL 2.0
 
Where is my bottleneck? Performance troubleshooting in Flink
Where is my bottleneck? Performance troubleshooting in FlinkWhere is my bottleneck? Performance troubleshooting in Flink
Where is my bottleneck? Performance troubleshooting in Flink
 
Event Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMware
Event Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMwareEvent Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMware
Event Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMware
 
Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?
 
ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!
 
Apache Kafka and KSQL in Action: Let's Build a Streaming Data Pipeline!
Apache Kafka and KSQL in Action: Let's Build a Streaming Data Pipeline!Apache Kafka and KSQL in Action: Let's Build a Streaming Data Pipeline!
Apache Kafka and KSQL in Action: Let's Build a Streaming Data Pipeline!
 
A Deep Dive into Stateful Stream Processing in Structured Streaming with Tath...
A Deep Dive into Stateful Stream Processing in Structured Streaming with Tath...A Deep Dive into Stateful Stream Processing in Structured Streaming with Tath...
A Deep Dive into Stateful Stream Processing in Structured Streaming with Tath...
 
Confluent REST Proxy and Schema Registry (Concepts, Architecture, Features)
Confluent REST Proxy and Schema Registry (Concepts, Architecture, Features)Confluent REST Proxy and Schema Registry (Concepts, Architecture, Features)
Confluent REST Proxy and Schema Registry (Concepts, Architecture, Features)
 
[115]쿠팡 서비스 클라우드 마이그레이션 통해 배운것들
[115]쿠팡 서비스 클라우드 마이그레이션 통해 배운것들[115]쿠팡 서비스 클라우드 마이그레이션 통해 배운것들
[115]쿠팡 서비스 클라우드 마이그레이션 통해 배운것들
 

Similar to Using Kafka: Anatomy of the Flowable event registry

Event-Based API Patterns and Practices
Event-Based API Patterns and PracticesEvent-Based API Patterns and Practices
Event-Based API Patterns and Practices
LaunchAny
 
Actors or Not: Async Event Architectures
Actors or Not: Async Event ArchitecturesActors or Not: Async Event Architectures
Actors or Not: Async Event Architectures
Yaroslav Tkachenko
 
Enterprise wide publish subscribe with Apache Kafka
Enterprise wide publish subscribe with Apache KafkaEnterprise wide publish subscribe with Apache Kafka
Enterprise wide publish subscribe with Apache Kafka
Johan Louwers
 
Best Practices for Streaming IoT Data with MQTT and Apache Kafka®
Best Practices for Streaming IoT Data with MQTT and Apache Kafka®Best Practices for Streaming IoT Data with MQTT and Apache Kafka®
Best Practices for Streaming IoT Data with MQTT and Apache Kafka®
confluent
 
Big Data Day LA 2016/ Hadoop/ Spark/ Kafka track - Building an Event-oriented...
Big Data Day LA 2016/ Hadoop/ Spark/ Kafka track - Building an Event-oriented...Big Data Day LA 2016/ Hadoop/ Spark/ Kafka track - Building an Event-oriented...
Big Data Day LA 2016/ Hadoop/ Spark/ Kafka track - Building an Event-oriented...
Data Con LA
 
SRV315 Building Enterprise-Grade Serverless Apps
 SRV315 Building Enterprise-Grade Serverless Apps SRV315 Building Enterprise-Grade Serverless Apps
SRV315 Building Enterprise-Grade Serverless Apps
Amazon Web Services
 
Building a system for machine and event-oriented data with Rocana
Building a system for machine and event-oriented data with RocanaBuilding a system for machine and event-oriented data with Rocana
Building a system for machine and event-oriented data with Rocana
Treasure Data, Inc.
 
Best Practices for Streaming IoT Data with MQTT and Apache Kafka
Best Practices for Streaming IoT Data with MQTT and Apache KafkaBest Practices for Streaming IoT Data with MQTT and Apache Kafka
Best Practices for Streaming IoT Data with MQTT and Apache Kafka
Kai Wähner
 
Viele Autos, noch mehr Daten: IoT-Daten-Streaming mit MQTT & Kafka (Kai Waehn...
Viele Autos, noch mehr Daten: IoT-Daten-Streaming mit MQTT & Kafka (Kai Waehn...Viele Autos, noch mehr Daten: IoT-Daten-Streaming mit MQTT & Kafka (Kai Waehn...
Viele Autos, noch mehr Daten: IoT-Daten-Streaming mit MQTT & Kafka (Kai Waehn...
confluent
 
OpenWhisk: Where Did My Servers Go?
OpenWhisk: Where Did My Servers Go?OpenWhisk: Where Did My Servers Go?
OpenWhisk: Where Did My Servers Go?
Carlos Santana
 
Building an Event-oriented Data Platform with Kafka, Eric Sammer
Building an Event-oriented Data Platform with Kafka, Eric Sammer Building an Event-oriented Data Platform with Kafka, Eric Sammer
Building an Event-oriented Data Platform with Kafka, Eric Sammer
confluent
 
Building Modern Apps Using Amazon DynamoDB Transactions: re:Invent 2018 Recap...
Building Modern Apps Using Amazon DynamoDB Transactions: re:Invent 2018 Recap...Building Modern Apps Using Amazon DynamoDB Transactions: re:Invent 2018 Recap...
Building Modern Apps Using Amazon DynamoDB Transactions: re:Invent 2018 Recap...
Amazon Web Services
 
AWS18 Startup Day Toronto- The Best Practices and Hard Lessons Learned of Ser...
AWS18 Startup Day Toronto- The Best Practices and Hard Lessons Learned of Ser...AWS18 Startup Day Toronto- The Best Practices and Hard Lessons Learned of Ser...
AWS18 Startup Day Toronto- The Best Practices and Hard Lessons Learned of Ser...
Amazon Web Services
 
Patterns of Distributed Application Design
Patterns of Distributed Application DesignPatterns of Distributed Application Design
Patterns of Distributed Application Design
GlobalLogic Ukraine
 
Serverless Patterns by Jesse Butler
Serverless Patterns by Jesse ButlerServerless Patterns by Jesse Butler
Serverless Patterns by Jesse Butler
Oracle Developers
 
Event Horizon at Solace Connect Singapore
Event Horizon at Solace Connect SingaporeEvent Horizon at Solace Connect Singapore
Event Horizon at Solace Connect Singapore
Solace
 
Event Sourcing, Stream Processing and Serverless (Benjamin Stopford, Confluen...
Event Sourcing, Stream Processing and Serverless (Benjamin Stopford, Confluen...Event Sourcing, Stream Processing and Serverless (Benjamin Stopford, Confluen...
Event Sourcing, Stream Processing and Serverless (Benjamin Stopford, Confluen...
confluent
 
Event Driven Services Part 2: Building Event-Driven Services with Apache Kafka
Event Driven Services Part 2:  Building Event-Driven Services with Apache KafkaEvent Driven Services Part 2:  Building Event-Driven Services with Apache Kafka
Event Driven Services Part 2: Building Event-Driven Services with Apache Kafka
Ben Stopford
 
Building Event-Driven Services with Apache Kafka
Building Event-Driven Services with Apache KafkaBuilding Event-Driven Services with Apache Kafka
Building Event-Driven Services with Apache Kafka
confluent
 
Legacy java ee meet lambda
Legacy java ee  meet lambdaLegacy java ee  meet lambda
Legacy java ee meet lambda
Kim Kao
 

Similar to Using Kafka: Anatomy of the Flowable event registry (20)

Event-Based API Patterns and Practices
Event-Based API Patterns and PracticesEvent-Based API Patterns and Practices
Event-Based API Patterns and Practices
 
Actors or Not: Async Event Architectures
Actors or Not: Async Event ArchitecturesActors or Not: Async Event Architectures
Actors or Not: Async Event Architectures
 
Enterprise wide publish subscribe with Apache Kafka
Enterprise wide publish subscribe with Apache KafkaEnterprise wide publish subscribe with Apache Kafka
Enterprise wide publish subscribe with Apache Kafka
 
Best Practices for Streaming IoT Data with MQTT and Apache Kafka®
Best Practices for Streaming IoT Data with MQTT and Apache Kafka®Best Practices for Streaming IoT Data with MQTT and Apache Kafka®
Best Practices for Streaming IoT Data with MQTT and Apache Kafka®
 
Big Data Day LA 2016/ Hadoop/ Spark/ Kafka track - Building an Event-oriented...
Big Data Day LA 2016/ Hadoop/ Spark/ Kafka track - Building an Event-oriented...Big Data Day LA 2016/ Hadoop/ Spark/ Kafka track - Building an Event-oriented...
Big Data Day LA 2016/ Hadoop/ Spark/ Kafka track - Building an Event-oriented...
 
SRV315 Building Enterprise-Grade Serverless Apps
 SRV315 Building Enterprise-Grade Serverless Apps SRV315 Building Enterprise-Grade Serverless Apps
SRV315 Building Enterprise-Grade Serverless Apps
 
Building a system for machine and event-oriented data with Rocana
Building a system for machine and event-oriented data with RocanaBuilding a system for machine and event-oriented data with Rocana
Building a system for machine and event-oriented data with Rocana
 
Best Practices for Streaming IoT Data with MQTT and Apache Kafka
Best Practices for Streaming IoT Data with MQTT and Apache KafkaBest Practices for Streaming IoT Data with MQTT and Apache Kafka
Best Practices for Streaming IoT Data with MQTT and Apache Kafka
 
Viele Autos, noch mehr Daten: IoT-Daten-Streaming mit MQTT & Kafka (Kai Waehn...
Viele Autos, noch mehr Daten: IoT-Daten-Streaming mit MQTT & Kafka (Kai Waehn...Viele Autos, noch mehr Daten: IoT-Daten-Streaming mit MQTT & Kafka (Kai Waehn...
Viele Autos, noch mehr Daten: IoT-Daten-Streaming mit MQTT & Kafka (Kai Waehn...
 
OpenWhisk: Where Did My Servers Go?
OpenWhisk: Where Did My Servers Go?OpenWhisk: Where Did My Servers Go?
OpenWhisk: Where Did My Servers Go?
 
Building an Event-oriented Data Platform with Kafka, Eric Sammer
Building an Event-oriented Data Platform with Kafka, Eric Sammer Building an Event-oriented Data Platform with Kafka, Eric Sammer
Building an Event-oriented Data Platform with Kafka, Eric Sammer
 
Building Modern Apps Using Amazon DynamoDB Transactions: re:Invent 2018 Recap...
Building Modern Apps Using Amazon DynamoDB Transactions: re:Invent 2018 Recap...Building Modern Apps Using Amazon DynamoDB Transactions: re:Invent 2018 Recap...
Building Modern Apps Using Amazon DynamoDB Transactions: re:Invent 2018 Recap...
 
AWS18 Startup Day Toronto- The Best Practices and Hard Lessons Learned of Ser...
AWS18 Startup Day Toronto- The Best Practices and Hard Lessons Learned of Ser...AWS18 Startup Day Toronto- The Best Practices and Hard Lessons Learned of Ser...
AWS18 Startup Day Toronto- The Best Practices and Hard Lessons Learned of Ser...
 
Patterns of Distributed Application Design
Patterns of Distributed Application DesignPatterns of Distributed Application Design
Patterns of Distributed Application Design
 
Serverless Patterns by Jesse Butler
Serverless Patterns by Jesse ButlerServerless Patterns by Jesse Butler
Serverless Patterns by Jesse Butler
 
Event Horizon at Solace Connect Singapore
Event Horizon at Solace Connect SingaporeEvent Horizon at Solace Connect Singapore
Event Horizon at Solace Connect Singapore
 
Event Sourcing, Stream Processing and Serverless (Benjamin Stopford, Confluen...
Event Sourcing, Stream Processing and Serverless (Benjamin Stopford, Confluen...Event Sourcing, Stream Processing and Serverless (Benjamin Stopford, Confluen...
Event Sourcing, Stream Processing and Serverless (Benjamin Stopford, Confluen...
 
Event Driven Services Part 2: Building Event-Driven Services with Apache Kafka
Event Driven Services Part 2:  Building Event-Driven Services with Apache KafkaEvent Driven Services Part 2:  Building Event-Driven Services with Apache Kafka
Event Driven Services Part 2: Building Event-Driven Services with Apache Kafka
 
Building Event-Driven Services with Apache Kafka
Building Event-Driven Services with Apache KafkaBuilding Event-Driven Services with Apache Kafka
Building Event-Driven Services with Apache Kafka
 
Legacy java ee meet lambda
Legacy java ee  meet lambdaLegacy java ee  meet lambda
Legacy java ee meet lambda
 

More from Flowable

Creating a checklist engine with Flowable
Creating a checklist engine with FlowableCreating a checklist engine with Flowable
Creating a checklist engine with Flowable
Flowable
 
FlowFest Welcome
FlowFest WelcomeFlowFest Welcome
FlowFest Welcome
Flowable
 
Low code with Flowable
Low code with FlowableLow code with Flowable
Low code with Flowable
Flowable
 
Flowable 2019 What's New
Flowable 2019 What's NewFlowable 2019 What's New
Flowable 2019 What's New
Flowable
 
Complex batch process migration
Complex batch process migrationComplex batch process migration
Complex batch process migration
Flowable
 
BPMN and CMMN execution error analysis
BPMN and CMMN execution error analysisBPMN and CMMN execution error analysis
BPMN and CMMN execution error analysis
Flowable
 
Flowable Business Processing from Kafka Events
Flowable Business Processing from Kafka Events Flowable Business Processing from Kafka Events
Flowable Business Processing from Kafka Events
Flowable
 
BpmNEXT2019 - The Case of Intentional Process
BpmNEXT2019 - The Case of Intentional ProcessBpmNEXT2019 - The Case of Intentional Process
BpmNEXT2019 - The Case of Intentional Process
Flowable
 
Flowable: Life, death and all the other processes in between
Flowable: Life, death and all the other processes in betweenFlowable: Life, death and all the other processes in between
Flowable: Life, death and all the other processes in between
Flowable
 
What’s New with Flowable?
What’s New with Flowable?What’s New with Flowable?
What’s New with Flowable?
Flowable
 
Flowable What´s coming next?
Flowable What´s coming next?Flowable What´s coming next?
Flowable What´s coming next?
Flowable
 
Advanced process migration with Flowable
Advanced process migration with FlowableAdvanced process migration with Flowable
Advanced process migration with Flowable
Flowable
 
Flowable: High wealth customer engagement through chat-driven case and process
Flowable: High wealth customer engagement through chat-driven case and processFlowable: High wealth customer engagement through chat-driven case and process
Flowable: High wealth customer engagement through chat-driven case and process
Flowable
 
Flowable: Building a crowd sourced document extraction and verification system
Flowable: Building a crowd sourced document extraction and verification systemFlowable: Building a crowd sourced document extraction and verification system
Flowable: Building a crowd sourced document extraction and verification system
Flowable
 
Deploying Flowable at scale in AWS
Deploying Flowable at scale in AWSDeploying Flowable at scale in AWS
Deploying Flowable at scale in AWS
Flowable
 

More from Flowable (15)

Creating a checklist engine with Flowable
Creating a checklist engine with FlowableCreating a checklist engine with Flowable
Creating a checklist engine with Flowable
 
FlowFest Welcome
FlowFest WelcomeFlowFest Welcome
FlowFest Welcome
 
Low code with Flowable
Low code with FlowableLow code with Flowable
Low code with Flowable
 
Flowable 2019 What's New
Flowable 2019 What's NewFlowable 2019 What's New
Flowable 2019 What's New
 
Complex batch process migration
Complex batch process migrationComplex batch process migration
Complex batch process migration
 
BPMN and CMMN execution error analysis
BPMN and CMMN execution error analysisBPMN and CMMN execution error analysis
BPMN and CMMN execution error analysis
 
Flowable Business Processing from Kafka Events
Flowable Business Processing from Kafka Events Flowable Business Processing from Kafka Events
Flowable Business Processing from Kafka Events
 
BpmNEXT2019 - The Case of Intentional Process
BpmNEXT2019 - The Case of Intentional ProcessBpmNEXT2019 - The Case of Intentional Process
BpmNEXT2019 - The Case of Intentional Process
 
Flowable: Life, death and all the other processes in between
Flowable: Life, death and all the other processes in betweenFlowable: Life, death and all the other processes in between
Flowable: Life, death and all the other processes in between
 
What’s New with Flowable?
What’s New with Flowable?What’s New with Flowable?
What’s New with Flowable?
 
Flowable What´s coming next?
Flowable What´s coming next?Flowable What´s coming next?
Flowable What´s coming next?
 
Advanced process migration with Flowable
Advanced process migration with FlowableAdvanced process migration with Flowable
Advanced process migration with Flowable
 
Flowable: High wealth customer engagement through chat-driven case and process
Flowable: High wealth customer engagement through chat-driven case and processFlowable: High wealth customer engagement through chat-driven case and process
Flowable: High wealth customer engagement through chat-driven case and process
 
Flowable: Building a crowd sourced document extraction and verification system
Flowable: Building a crowd sourced document extraction and verification systemFlowable: Building a crowd sourced document extraction and verification system
Flowable: Building a crowd sourced document extraction and verification system
 
Deploying Flowable at scale in AWS
Deploying Flowable at scale in AWSDeploying Flowable at scale in AWS
Deploying Flowable at scale in AWS
 

Recently uploaded

DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
TIPNGVN2
 

Recently uploaded (20)

DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
 

Using Kafka: Anatomy of the Flowable event registry

  • 1. Using Kafka: the Flowable Event Registry Joram Barrez (@jbarrez) Filip Hrisafov (@filiphr)
  • 2. ©2019FlowableAG. All rights reserved. Event-Driven Architectures • In the Flowable community, we have seen • People experimenting with event-driven/event-sourcing architectures • (or more often architectures enriched with events) • Demand for out-of-the-box support 2
  • 3. ©2019FlowableAG. All rights reserved. Event-Driven Architectures • A process/case fits naturally • Can be the ‘Command’ of an event (e.g. the C in CQRS) • Have state to react on the change expressed in the event (state is often the hard part of event-sourcing) 3
  • 4. ©2019FlowableAG. All rights reserved. Quick Demo 4
  • 5. ©2019FlowableAG. All rights reserved. Implementation – The event registry 5 Flowable Engine EventRegistry EventBus EventDefinitionEventDefinitionEventDefinition Consumers Central repository of event metadata Dispatches events to consumers (default process/case behaviors are also a consumer) Description of event structure: - Payload - Correlation
  • 6. ©2019FlowableAG. All rights reserved. Implementation – Channels and Pipelines 6 Flowable Engine EventRegistry EventBus Channel Adapter Event Consumer Inbound Channel Inbound Pipeline Deserialization Event key detection * All shown here on the slide are pluggable Payload extraction Event transformation
  • 7. ©2019FlowableAG. All rights reserved. Implementation – Channels and Pipelines 7 Flowable Engine EventRegistry EventBus Channel Adapter Event Producer Outbound Channel Outbound Pipeline Serialization Event transformation
  • 9. ©2019FlowableAG. All rights reserved. • Fictional electrical kick- scooter startup • Customer satisfaction is priority #1 Use Case 9
  • 10. ©2019FlowableAG. All rights reserved. • Customer can provide a review • Review à Kafka • A customer case • Groups all reviews • Kicks of a sentiment analysis process • Analysis is done using a process that calls out to AWS Comprehend • Bad review à A task for an employee is created to try to fix the relationship Use Case 10
  • 11. ©2019FlowableAG. All rights reserved. Architecture 11 * (5th service (Spring Cloud API gateway) not shown to simplify things) UI for customers Review Service Customer Relationship Service Flowable Task Sentiment Analysis service UI for employees AWS Comprehend Review Event Review Event Analysis Result Analysis Result Analysis Request Analysis Request
  • 12. ©2019FlowableAG. All rights reserved. Demo: The models explained 12
  • 13. ©2019FlowableAG. All rights reserved. Demo • Simulating reviews • Stepping through a bad user review 13
  • 14. ©2019FlowableAG. All rights reserved. Demo: Review Service • Simple Spring Webflux REST API • Reactive pushing of events from UI into Kafka 14
  • 15. ©2019FlowableAG. All rights reserved. Demo: Customer Case Service • Spring Boot application • Flowable Spring Boot starters • Autodeploy cases and process models • Register event channels and definitions • Postgres DB 15
  • 16. ©2019FlowableAG. All rights reserved. Demo: Customer Case Service • The sentiment process doesn’t use the ‘old way’ • Send-and-wait-for-response pattern • Race condition problem 16
  • 17. ©2019FlowableAG. All rights reserved. Demo: Customer Case Service • The sentiment process uses a triggerable service task 17 • During execution (tx1) • Create event subscription • Create async job data (to send event) • Post-commit (tx2) • Trigger job executor (or other node) • Send event asynchronously • Go into wait state • Event receival (tx3) • Trigger for continuation
  • 18. ©2019FlowableAG. All rights reserved. Demo: Customer Case Service • Can this also be made reactive? • Yes! • Nicely scaling of message stream handling depending on load • (insertion of async Flowable job at event receival using R2DBC) 18
  • 19. ©2019FlowableAG. All rights reserved. Demo: The Sentiment Analysis Service • Spring Boot application • Flowable Spring Boot starters • Autodeploy process model • Uses AWS SDK to call out to AWS Comprehend 19
  • 20. ©2019FlowableAG. All rights reserved. Demo: Flowable Task • Bad review à employee form 20
  • 21. ©2019FlowableAG. All rights reserved. Demo: The Sentiment Analysis Service • This service is effectively a function • Can be run serverless • With all the benefits of using Flowable • Visual models, audit/history, etc. 21
  • 22. ©2019FlowableAG. All rights reserved. Serverless Core Concepts • Ephemeral (short living) • Only booted up when needed • Cold starts • Auto scaling • Heavy load à boot up more instances • No Server management • Logic is deployed to a ‘serverless provider’ • Don’t care, up to the cloud vendor • Pay as you use 22
  • 23. ©2019FlowableAG. All rights reserved. What is serverless? • A better name would be ‘on-demand/event server’ • (it’s still running on a server) 23
  • 24. ©2019FlowableAG. All rights reserved. Flowable Serverless (Experimental) • Challenges • Cold start • State • Solutions • In memory (no Database) • No wait states (straight-through processes) 24
  • 25. ©2019FlowableAG. All rights reserved. What is serverless? • Example: Amazon AWS Lambda • AWS Lamba in/out can be chained to the whole AWS ecosystem: S3/SQS/Alexa/DynamoDB/… 25
  • 26. ©2019FlowableAG. All rights reserved. Architecture 26 * (5th service (Spring Cloud API gateway) not shown to simplify things) UI for customers Review Service Customer Relationship Service Flowable Task Sentiment Analysis service UI for employees AWS Comprehend Review Event Review Event Analysis Result Analysis Result Analysis Request Analysis Request
  • 27. ©2019FlowableAG. All rights reserved. AWS Architecture 27 AWS Cloud API Gateway AWS SQS Review Event Frontend (S3) Review Event Analysis Request Analysis Result Analysis Request Analysis Result Customer Review Application (EC2) Sentiment Analysis Browser Comprehe nd
  • 28. ©2019FlowableAG. All rights reserved. Review Service Differences • Doesn’t exist J • API Gateway pushes events directly to Amazon SQS 28
  • 29. ©2019FlowableAG. All rights reserved. Customer Case Service Differences • Listens from Amazon SQS instead of Kafka • The channel/adapter concept makes this very flexible • Without impact on using the events in the model 29
  • 30. ©2019FlowableAG. All rights reserved. Sentiment Analysis Service Differences • Flowable with in memory DB (no SQL) • Triggers via Amazon SQS as a Lambda • Timing (with 256MB Lambda) • Cold start billed 30s / Engine start 6s / Deploy 1.2s • Preheat start: billed 1s / Engine start 60ms / Deploy 80ms • Sends analysis results synchronously to Amazon SQS 30
  • 31. ©2019FlowableAG. All rights reserved. Serverless: No Free Lunch • Vendor lock-in • Security? • Debugging? 31
  • 32. ©2019FlowableAG. All rights reserved. Future Ideas • Aurora serverless • Passing state around with event payload 32
  • 33. ©2019FlowableAG. All rights reserved. Conclusions • We’ve shown that • using Flowable in event-driven architectures is easy, yet very powerful • Flowable is extremely flexible when it comes to • switching queue/event stream choice • deploying your Flowable applications in different environments • running a process as a serverless function 33