SlideShare a Scribd company logo
Spinning your Drones with Cadence
Workflows and Apache Kafka®
Paul Brebner
Instaclustr—Technology Evangelist
©Instaclustr Pty Limited, 2022
APIDAYS Hong Kong - August 2022
Who Am I?
Previously
§ R&D in distributed systems and performance
engineering.
Last 5 years
§ Technology Evangelist for Instaclustr by NetApp
§ 100+ Blogs, demo applications, talks
§ Open Source technologies including
o Apache Cassandra®, Spark™, Kafka®
o OpenSearch®, Redis™
o and now Uber’s Cadence®
© Instaclustr Pty Limited, 2022
Cloud Platform for Big Data
Open Source Technologies
Latest addition is
Workflow Orchestration
with
Instaclustr Managed Platform
© Instaclustr Pty Limited, 2022
Workflow Orchestration – task ordering
Start
© Instaclustr Pty Limited, 2022
Workflow Orchestration – task ordering
Start Task 1
© Instaclustr Pty Limited, 2022
Workflow Orchestration – task ordering
Start Task 1 Task 2
© Instaclustr Pty Limited, 2022
Workflow Orchestration – task ordering
Start Task 1 Task 2 End
© Instaclustr Pty Limited, 2022
Pedalling with a high Cadence (pedal revolutions) is called Spinning!
Mashing or grinding is slow (and bad.)
(Source: Shutterstock)
© Instaclustr Pty Limited, 2022
With
Cadence is Fault-Tolerant— Workflows can fail!
(Source: Shutterstock)
© Instaclustr Pty Limited, 2022
Cadence is Fault-Tolerant—Workflows continue from point of failure
(Source: Shutterstock)
© Instaclustr Pty Limited, 2022
Cadence is Horizontally Scalable—the number of workflows is unlimited
(Source: Shutterstock)
© Instaclustr Pty Limited, 2022
Cadence Workflows Are Code
@Override
public void startWorkflow(String a) {
String b = activities.task1(a);
String c = activities.task2(b);
}
A workflow implementation with 2 tasks executed sequentially
© Instaclustr Pty Limited, 2022
Start Task 1 Task 2 End
Cadence Architecture
Instaclustr Managed Service
Workers
Run workflow logic
Customer Managed
Clients and Workers
Workers
Workers
Clients and
Workers
Instaclustr Managed
Cadence and Database Clusters
Cadence Servers
Database
Cassandra
PostgreSQL
Kafka
OpenSearch
(optional)
Java and Go Clients
are supported
APIs
© Instaclustr Pty Limited, 2022
§ com.uber.cadence.activity
APIs to implement activity, accessing activity info, or send heartbeat
§ com.uber.cadence.client
APIs for external application code to interact with Cadence workflows, start
workflows, send signals or query workflows.
§ com.uber.cadence.workflow
APIs to implement workflows
§ com.uber.cadence.worker
APIs to configure and start workers
And more
Cadence Client APIs
© Instaclustr Pty Limited, 2022
© Instaclustr Pty Limited, 2022
Start Task 1 Task 2 End
Database
Workflow History Written to Database
Start Workflow Start Task 1 End Task 1
HERE
How Does Cadence Fault-Tolerance Work?
Event-Sourcing = History + Replaying
Workflow State Recovery by
Replaying History
© Instaclustr Pty Limited, 2022
Start Task 1 Task 2 End
Database
Failure causes complete history
replay
Replay
Workflow State Recovery by
Replaying History
© Instaclustr Pty Limited, 2022
Start Task 1 Task 2 End
Database
Replay recreates Workflow state
and restart point
Replay
Restart
Cadence Activities
Activities (including
backwards cycling)
can fail
© Instaclustr Pty Limited, 2022
(Source: Shutterstock)
Activity: Task 2
Activity: Task 1
§ Activities are core to Cadence
§ Remote calls can fail, so wrap them in Activities
§ They can contain any code
§ Activities are executed at most once and can be automatically retried on failure
Cadence Activities
© Instaclustr Pty Limited, 2022
Start End
Remote
Call
Workflow Restrictions: Activities
@Override
public void startWorkflow(String a) {
if (a == null) a = “”;
String b = activities.task1(a); // executed at most once
long t = Workflow.currentTimeMillis();
String c = activities.task2(t, b); // executed at most once
}
Replaying must not produce new history events!
Activities executed at most once—this ensures that once they
succeed then the result is immutable (fixed)
© Instaclustr Pty Limited, 2022
Start Activity: Task 1 Activity: Task 2 End
Workflow
code
Workflow
code
<= 1 <= 1
@Override
public void startWorkflow(String a) {
if (a == null) a = “”; // executed multiple times
String b = activities.task1(a);
long t = Workflow.currentTimeMillis(); // built-in time method not replayed
String c = activities.task2(t, b);
}
Replaying must not produce new history events!
Due to replaying, workflow code executed multiple times, so must be deterministic
Use built-in methods for time, sleeping, random, and side-effects
© Instaclustr Pty Limited, 2022
Start Activity: Task 1 Activity: Task 2 End
Workflow
code
Workflow
code
>= 1 >= 1
Workflow Restrictions: Workflows
§ 100s to Millions of running workflows
§ Long running processes, sleeping & scheduled tasks
§ Stateful fault-tolerant applications
§ Complex workflows
§ Integration with unreliable external systems
§ Integration with streaming and event-based systems (E.g. Kafka)
§ Short workflows (100s of steps) – long workflows (1000s of steps) may take longer to
replay history
For example? Financial, retail, delivery!
Good Use Cases?
© Instaclustr Pty Limited, 2022
Spinning your Drones!
A Drone Delivery Application
(Source: Shutterstock)
© Instaclustr Pty Limited, 2022
Drone Workflow Steps
§ Charged ready to go at base
§ Get an Order to deliver
§ Fly to Order location and collect Order
§ Fly to Delivery location and drop Order
§ Fly back to base
§ Recharge
§ Repeat
© Instaclustr Pty Limited, 2022
Base to Order to
Delivery to Base
Example of Drone Delivery Flight
© Instaclustr Pty Limited, 2022
(Source: Shutterstock)
Drone Way Point Flight Calculations
§ Drone flight path is computed in an
activity
§ Using location, distance, bearing,
speed, and charge
§ Every 10 seconds
§ On failure, the drone won’t crash
and will continue flying from the last
location
Returning to Base Example
© Instaclustr Pty Limited, 2022
(Source: Shutterstock)
The System: Swim-lane diagrams
1st Workflow: Drone Workflow
Recharge
© Instaclustr Pty Limited, 2022
Start, Ready, Wait for Order, Movement Activities, Recharge, Repeat
Orders Are Also Stateful →Workflow
2nd Workflow: Order Workflow
© Instaclustr Pty Limited, 2022
(Source: Shutterstock)
Start, Generate locations, ready for drone, update locations, End if delivered
Orders Are Also Stateful →Workflow
2nd Workflow: Order Workflow
So we need coordination
between the workflows:
(1) Asynchronous Signaling
between workflows
1
© Instaclustr Pty Limited, 2022
(Source: Shutterstock)
Next, Cadence Meets Kafka
(source: https://bahumbug.wordpress.com/2014/08/03/kafka-onna-bike/)
Kafka is a distributed pub-sub streams processing
system, it allows distributed producers to send messages
to distributed consumers via a Kafka cluster. It uses
Topics to loosely couple producers and consumers.
What is
©Instaclustr Pty Limited 2019, 2021, 2022
Kafka?
Integration with Kafka adds
A Kafka Cluster with:
3 Kafka Topics
3 Kafka Producers and
2 Consumers
1
© Instaclustr Pty Limited, 2022
(2) Starting a workflow from Kafka
1
© Instaclustr Pty Limited, 2022
2
Integration with Kafka adds
(3) Using a Kafka microservice to
coordinate Drone and Order workflows
1
© Instaclustr Pty Limited, 2022
3
2
Integration with Kafka adds
(Source: Shutterstock)
Cadence Orchestration +
Kafka Choreography = Drone Ballet?
(Source: Wikimedia)
Step 1: Customer places an order—
Order Sent to Kafka New Orders Topic
1
© Instaclustr Pty Limited, 2022
(Source: Shutterstock)
2
Consumer
Step 2: Start New Order Workflow—
Kafka Consumer Gets Order, Starts New Order Workflow Using Cadence Client
© Instaclustr Pty Limited, 2022
(Source: Shutterstock)
3
Activity
Step 3: Order Ready for Drone Pickup—
Activity: Send Order Ready Message to Orders Ready Topic
© Instaclustr Pty Limited, 2022
(Source: Shutterstock)
4
Activity
Consumer
A Drone+Order Matching
Microservice
Step 4: Drone Workflow—
Activity: Send Drone Ready Message to Drone Ready Topic, Kafka Consumer
Gets an Order ID and Sends Signal Back to Drone to start the order pickup
© Instaclustr Pty Limited, 2022
(Source: Shutterstock)
5
Step 5: Drone Workflow—Fly To Order
Activity: Fly to Order Location
© Instaclustr Pty Limited, 2022
(Source: Shutterstock)
5
Step 5: Drone Workflow—Fly To Order
And Pickup Order
© Instaclustr Pty Limited, 2022
(Source: Shutterstock)
6
Step 6: Drone Workflow—Fly To Delivery Location
Activity: Fly to Delivery Location
© Instaclustr Pty Limited, 2022
(Source: Shutterstock)
Step 6: Drone Workflow—Fly To Delivery Location
And Drop Order; Send Location Updates to Order Workflow Every 10s
6
© Instaclustr Pty Limited, 2022
(Source: Shutterstock)
7
Step 7: Drone Workflow—Fly To Base
Activity: Fly to Delivery Location; recharge when back at base and start new drone workflow
© Instaclustr Pty Limited, 2022
(Source: Shutterstock)
8
Step 8: Order Workflow—Update Location
Receive State and Location Signal From Drone Workflow, Update State;
If Delivered Then End Workflow
© Instaclustr Pty Limited, 2022
(Source: Shutterstock)
Sequence…
© Instaclustr Pty Limited, 2022
Sequence…
© Instaclustr Pty Limited, 2022
Sequence…
© Instaclustr Pty Limited, 2022
Sequence…
© Instaclustr Pty Limited, 2022
Sequence…
© Instaclustr Pty Limited, 2022
Sequence…
© Instaclustr Pty Limited, 2022
Sequence…
© Instaclustr Pty Limited, 2022
Sequence…
© Instaclustr Pty Limited, 2022
Sequence…
© Instaclustr Pty Limited, 2022
Sequence…
© Instaclustr Pty Limited, 2022
Sequence…
© Instaclustr Pty Limited, 2022
Sequence…
© Instaclustr Pty Limited, 2022
Sequence…
© Instaclustr Pty Limited, 2022
Sequence…
© Instaclustr Pty Limited, 2022
Sequence…
© Instaclustr Pty Limited, 2022
Sequence…
© Instaclustr Pty Limited, 2022
Sequence…
© Instaclustr Pty Limited, 2022
Sequence…
© Instaclustr Pty Limited, 2022
Sequence…
© Instaclustr Pty Limited, 2022
Sequence…
© Instaclustr Pty Limited, 2022
Sequence…
© Instaclustr Pty Limited, 2022
Sequence…
© Instaclustr Pty Limited, 2022
Sequence…
© Instaclustr Pty Limited, 2022
Sequence…
© Instaclustr Pty Limited, 2022
Sequence…
© Instaclustr Pty Limited, 2022
Sequence…
© Instaclustr Pty Limited, 2022
Sequence…
© Instaclustr Pty Limited, 2022
How Many Drones Can We
Fly?
© Instaclustr Pty Limited, 2022
(Source: Shutterstock)
Cluster Details (VCPUS):
Client (8), Cadence (6), Cassandra (18)
6
18
8
VCPUs Per Cluster (32 total)
Cadence Cassandra Client (EC2)
© Instaclustr Pty Limited, 2022
Load Test 1: “Flat-Out” à
Max 50 Drones
© Instaclustr Pty Limited, 2022
Load Test 2: Real-Time à
2,000 Drones & 4,000 Workflows
2000 2000
4000
0
500
1000
1500
2000
2500
3000
3500
4000
4500
Concurrent Workflows
Drones Orders Total
4000/32 = 125 workflows/core
© Instaclustr Pty Limited, 2022
Further Information:
Cadence Polling Cookbook
https://cadenceworkflow.io/docs/use-
cases/polling/
“MegaBurgers” polling example
Integration of Cadence with
External 3rd party REST APIs for order
state updates, using Polling
© Instaclustr Pty Limited, 2022
Further Information
Cadence (and other) Blogs: https://www.instaclustr.com/paul-brebner/
Try us out!
© Instaclustr Pty Limited, 2022
© Instaclustr Pty Limited, 2022
20 Drones Flying – Q&A
www.instaclustr.com
info@instaclustr.com
@instaclustr
THANK
YOU!
© Instaclustr Pty Limited, 2022
https://www.instaclustr.com/company/policies/terms-conditions/
Except as permitted by the copyright law applicable to you, you may
not reproduce, distribute, publish, display, communicate or transmit
any of the content of this document, in any form, but any means,
without the prior written permission of Instaclustr Pty Limited

More Related Content

Similar to Spinning your Drones with Cadence Workflows and Apache Kafka

Modern DevOps with Spinnaker/Concourse and Micrometer
Modern DevOps with Spinnaker/Concourse and MicrometerModern DevOps with Spinnaker/Concourse and Micrometer
Modern DevOps with Spinnaker/Concourse and Micrometer
Jesse Tate Pulfer
 
Google Cloud Next '22 Recap: Serverless & Data edition
Google Cloud Next '22 Recap: Serverless & Data editionGoogle Cloud Next '22 Recap: Serverless & Data edition
Google Cloud Next '22 Recap: Serverless & Data edition
Daniel Zivkovic
 
Scheduling Apps in the Cloud - Glenn Renfro & Roy Clarkson
Scheduling Apps in the Cloud - Glenn Renfro & Roy ClarksonScheduling Apps in the Cloud - Glenn Renfro & Roy Clarkson
Scheduling Apps in the Cloud - Glenn Renfro & Roy Clarkson
VMware Tanzu
 
Scheduling Apps in the Cloud - Glenn Renfro & Roy Clarkson
Scheduling Apps in the Cloud - Glenn Renfro & Roy ClarksonScheduling Apps in the Cloud - Glenn Renfro & Roy Clarkson
Scheduling Apps in the Cloud - Glenn Renfro & Roy Clarkson
VMware Tanzu
 
Docker and Cloud - Enables for DevOps - by ACA-IT
Docker and Cloud - Enables for DevOps - by ACA-ITDocker and Cloud - Enables for DevOps - by ACA-IT
Docker and Cloud - Enables for DevOps - by ACA-IT
Stijn Wijndaele
 
'DOCKER' & CLOUD: ENABLERS For DEVOPS
'DOCKER' & CLOUD:  ENABLERS For DEVOPS'DOCKER' & CLOUD:  ENABLERS For DEVOPS
'DOCKER' & CLOUD: ENABLERS For DEVOPS
ACA IT-Solutions
 
Ultimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on KubernetesUltimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on Kubernetes
kloia
 
Week 4 lecture material cc (1)
Week 4 lecture material cc (1)Week 4 lecture material cc (1)
Week 4 lecture material cc (1)
Ankit Gupta
 
week 4_watermark.pdfffffffffffffffffffff
week 4_watermark.pdfffffffffffffffffffffweek 4_watermark.pdfffffffffffffffffffff
week 4_watermark.pdfffffffffffffffffffff
anushka2002ece
 
FIWARE Wednesday Webinars - Short Term History within Smart Systems
FIWARE Wednesday Webinars - Short Term History within Smart SystemsFIWARE Wednesday Webinars - Short Term History within Smart Systems
FIWARE Wednesday Webinars - Short Term History within Smart Systems
FIWARE
 
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
 
Container orchestration from theory to practice
Container orchestration from theory to practiceContainer orchestration from theory to practice
Container orchestration from theory to practice
Docker, Inc.
 
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan Goksu
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan GoksuSpring Cloud Services with Pivotal Cloud Foundry- Gokhan Goksu
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan Goksu
VMware Tanzu
 
Spring Boot & Spring Cloud on PAS- Nate Schutta (1/2)
Spring Boot & Spring Cloud on PAS- Nate Schutta (1/2)Spring Boot & Spring Cloud on PAS- Nate Schutta (1/2)
Spring Boot & Spring Cloud on PAS- Nate Schutta (1/2)
VMware Tanzu
 
Evolution of netflix conductor
Evolution of netflix conductorEvolution of netflix conductor
Evolution of netflix conductor
vedu12
 
Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...
Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...
Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...
Wojciech Barczyński
 
Spring and Pivotal Application Service - SpringOne Tour Dallas
Spring and Pivotal Application Service - SpringOne Tour DallasSpring and Pivotal Application Service - SpringOne Tour Dallas
Spring and Pivotal Application Service - SpringOne Tour Dallas
VMware Tanzu
 
A GitOps model for High Availability and Disaster Recovery on EKS
A GitOps model for High Availability and Disaster Recovery on EKSA GitOps model for High Availability and Disaster Recovery on EKS
A GitOps model for High Availability and Disaster Recovery on EKS
Weaveworks
 
AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트
AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트
AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트
Amazon Web Services Korea
 
OSMC 2022 | Ignite: Observability with Grafana & Prometheus for Kafka on Kube...
OSMC 2022 | Ignite: Observability with Grafana & Prometheus for Kafka on Kube...OSMC 2022 | Ignite: Observability with Grafana & Prometheus for Kafka on Kube...
OSMC 2022 | Ignite: Observability with Grafana & Prometheus for Kafka on Kube...
NETWAYS
 

Similar to Spinning your Drones with Cadence Workflows and Apache Kafka (20)

Modern DevOps with Spinnaker/Concourse and Micrometer
Modern DevOps with Spinnaker/Concourse and MicrometerModern DevOps with Spinnaker/Concourse and Micrometer
Modern DevOps with Spinnaker/Concourse and Micrometer
 
Google Cloud Next '22 Recap: Serverless & Data edition
Google Cloud Next '22 Recap: Serverless & Data editionGoogle Cloud Next '22 Recap: Serverless & Data edition
Google Cloud Next '22 Recap: Serverless & Data edition
 
Scheduling Apps in the Cloud - Glenn Renfro & Roy Clarkson
Scheduling Apps in the Cloud - Glenn Renfro & Roy ClarksonScheduling Apps in the Cloud - Glenn Renfro & Roy Clarkson
Scheduling Apps in the Cloud - Glenn Renfro & Roy Clarkson
 
Scheduling Apps in the Cloud - Glenn Renfro & Roy Clarkson
Scheduling Apps in the Cloud - Glenn Renfro & Roy ClarksonScheduling Apps in the Cloud - Glenn Renfro & Roy Clarkson
Scheduling Apps in the Cloud - Glenn Renfro & Roy Clarkson
 
Docker and Cloud - Enables for DevOps - by ACA-IT
Docker and Cloud - Enables for DevOps - by ACA-ITDocker and Cloud - Enables for DevOps - by ACA-IT
Docker and Cloud - Enables for DevOps - by ACA-IT
 
'DOCKER' & CLOUD: ENABLERS For DEVOPS
'DOCKER' & CLOUD:  ENABLERS For DEVOPS'DOCKER' & CLOUD:  ENABLERS For DEVOPS
'DOCKER' & CLOUD: ENABLERS For DEVOPS
 
Ultimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on KubernetesUltimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on Kubernetes
 
Week 4 lecture material cc (1)
Week 4 lecture material cc (1)Week 4 lecture material cc (1)
Week 4 lecture material cc (1)
 
week 4_watermark.pdfffffffffffffffffffff
week 4_watermark.pdfffffffffffffffffffffweek 4_watermark.pdfffffffffffffffffffff
week 4_watermark.pdfffffffffffffffffffff
 
FIWARE Wednesday Webinars - Short Term History within Smart Systems
FIWARE Wednesday Webinars - Short Term History within Smart SystemsFIWARE Wednesday Webinars - Short Term History within Smart Systems
FIWARE Wednesday Webinars - Short Term History within Smart Systems
 
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
 
Container orchestration from theory to practice
Container orchestration from theory to practiceContainer orchestration from theory to practice
Container orchestration from theory to practice
 
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan Goksu
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan GoksuSpring Cloud Services with Pivotal Cloud Foundry- Gokhan Goksu
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan Goksu
 
Spring Boot & Spring Cloud on PAS- Nate Schutta (1/2)
Spring Boot & Spring Cloud on PAS- Nate Schutta (1/2)Spring Boot & Spring Cloud on PAS- Nate Schutta (1/2)
Spring Boot & Spring Cloud on PAS- Nate Schutta (1/2)
 
Evolution of netflix conductor
Evolution of netflix conductorEvolution of netflix conductor
Evolution of netflix conductor
 
Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...
Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...
Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...
 
Spring and Pivotal Application Service - SpringOne Tour Dallas
Spring and Pivotal Application Service - SpringOne Tour DallasSpring and Pivotal Application Service - SpringOne Tour Dallas
Spring and Pivotal Application Service - SpringOne Tour Dallas
 
A GitOps model for High Availability and Disaster Recovery on EKS
A GitOps model for High Availability and Disaster Recovery on EKSA GitOps model for High Availability and Disaster Recovery on EKS
A GitOps model for High Availability and Disaster Recovery on EKS
 
AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트
AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트
AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트
 
OSMC 2022 | Ignite: Observability with Grafana & Prometheus for Kafka on Kube...
OSMC 2022 | Ignite: Observability with Grafana & Prometheus for Kafka on Kube...OSMC 2022 | Ignite: Observability with Grafana & Prometheus for Kafka on Kube...
OSMC 2022 | Ignite: Observability with Grafana & Prometheus for Kafka on Kube...
 

More from Paul Brebner

The Impact of Hardware and Software Version Changes on Apache Kafka Performan...
The Impact of Hardware and Software Version Changes on Apache Kafka Performan...The Impact of Hardware and Software Version Changes on Apache Kafka Performan...
The Impact of Hardware and Software Version Changes on Apache Kafka Performan...
Paul Brebner
 
Apache ZooKeeper and Apache Curator: Meet the Dining Philosophers
Apache ZooKeeper and Apache Curator: Meet the Dining PhilosophersApache ZooKeeper and Apache Curator: Meet the Dining Philosophers
Apache ZooKeeper and Apache Curator: Meet the Dining Philosophers
Paul Brebner
 
Change Data Capture (CDC) With Kafka Connect® and the Debezium PostgreSQL Sou...
Change Data Capture (CDC) With Kafka Connect® and the Debezium PostgreSQL Sou...Change Data Capture (CDC) With Kafka Connect® and the Debezium PostgreSQL Sou...
Change Data Capture (CDC) With Kafka Connect® and the Debezium PostgreSQL Sou...
Paul Brebner
 
Scaling Open Source Big Data Cloud Applications is Easy/Hard
Scaling Open Source Big Data Cloud Applications is Easy/HardScaling Open Source Big Data Cloud Applications is Easy/Hard
Scaling Open Source Big Data Cloud Applications is Easy/Hard
Paul Brebner
 
OPEN Talk: Scaling Open Source Big Data Cloud Applications is Easy/Hard
OPEN Talk: Scaling Open Source Big Data Cloud Applications is Easy/HardOPEN Talk: Scaling Open Source Big Data Cloud Applications is Easy/Hard
OPEN Talk: Scaling Open Source Big Data Cloud Applications is Easy/Hard
Paul Brebner
 
A Visual Introduction to Apache Kafka
A Visual Introduction to Apache KafkaA Visual Introduction to Apache Kafka
A Visual Introduction to Apache Kafka
Paul Brebner
 
Massively Scalable Real-time Geospatial Anomaly Detection with Apache Kafka a...
Massively Scalable Real-time Geospatial Anomaly Detection with Apache Kafka a...Massively Scalable Real-time Geospatial Anomaly Detection with Apache Kafka a...
Massively Scalable Real-time Geospatial Anomaly Detection with Apache Kafka a...
Paul Brebner
 
Building a real-time data processing pipeline using Apache Kafka, Kafka Conne...
Building a real-time data processing pipeline using Apache Kafka, Kafka Conne...Building a real-time data processing pipeline using Apache Kafka, Kafka Conne...
Building a real-time data processing pipeline using Apache Kafka, Kafka Conne...
Paul Brebner
 
Grid Middleware – Principles, Practice and Potential
Grid Middleware – Principles, Practice and PotentialGrid Middleware – Principles, Practice and Potential
Grid Middleware – Principles, Practice and Potential
Paul Brebner
 
Grid middleware is easy to install, configure, secure, debug and manage acros...
Grid middleware is easy to install, configure, secure, debug and manage acros...Grid middleware is easy to install, configure, secure, debug and manage acros...
Grid middleware is easy to install, configure, secure, debug and manage acros...
Paul Brebner
 
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
Paul Brebner
 
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
Paul Brebner
 
Melbourne Big Data Meetup Talk: Scaling a Real-Time Anomaly Detection Applica...
Melbourne Big Data Meetup Talk: Scaling a Real-Time Anomaly Detection Applica...Melbourne Big Data Meetup Talk: Scaling a Real-Time Anomaly Detection Applica...
Melbourne Big Data Meetup Talk: Scaling a Real-Time Anomaly Detection Applica...
Paul Brebner
 
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
Paul Brebner
 
0b101000 years of computing: a personal timeline - decade "0", the 1980's
0b101000 years of computing: a personal timeline - decade "0", the 1980's0b101000 years of computing: a personal timeline - decade "0", the 1980's
0b101000 years of computing: a personal timeline - decade "0", the 1980's
Paul Brebner
 
ApacheCon Berlin 2019: Kongo:Building a Scalable Streaming IoT Application us...
ApacheCon Berlin 2019: Kongo:Building a Scalable Streaming IoT Application us...ApacheCon Berlin 2019: Kongo:Building a Scalable Streaming IoT Application us...
ApacheCon Berlin 2019: Kongo:Building a Scalable Streaming IoT Application us...
Paul Brebner
 
ApacheCon2019 Talk: Kafka, Cassandra and Kubernetes at Scale – Real-time Ano...
ApacheCon2019 Talk: Kafka, Cassandra and Kubernetesat Scale – Real-time Ano...ApacheCon2019 Talk: Kafka, Cassandra and Kubernetesat Scale – Real-time Ano...
ApacheCon2019 Talk: Kafka, Cassandra and Kubernetes at Scale – Real-time Ano...
Paul Brebner
 
ApacheCon2019 Talk: Improving the Observability of Cassandra, Kafka and Kuber...
ApacheCon2019 Talk: Improving the Observability of Cassandra, Kafka and Kuber...ApacheCon2019 Talk: Improving the Observability of Cassandra, Kafka and Kuber...
ApacheCon2019 Talk: Improving the Observability of Cassandra, Kafka and Kuber...
Paul Brebner
 
How to Improve the Observability of Apache Cassandra and Kafka applications...
How to Improve the Observability of Apache Cassandra and Kafka applications...How to Improve the Observability of Apache Cassandra and Kafka applications...
How to Improve the Observability of Apache Cassandra and Kafka applications...
Paul Brebner
 
A visual introduction to Apache Kafka
A visual introduction to Apache KafkaA visual introduction to Apache Kafka
A visual introduction to Apache Kafka
Paul Brebner
 

More from Paul Brebner (20)

The Impact of Hardware and Software Version Changes on Apache Kafka Performan...
The Impact of Hardware and Software Version Changes on Apache Kafka Performan...The Impact of Hardware and Software Version Changes on Apache Kafka Performan...
The Impact of Hardware and Software Version Changes on Apache Kafka Performan...
 
Apache ZooKeeper and Apache Curator: Meet the Dining Philosophers
Apache ZooKeeper and Apache Curator: Meet the Dining PhilosophersApache ZooKeeper and Apache Curator: Meet the Dining Philosophers
Apache ZooKeeper and Apache Curator: Meet the Dining Philosophers
 
Change Data Capture (CDC) With Kafka Connect® and the Debezium PostgreSQL Sou...
Change Data Capture (CDC) With Kafka Connect® and the Debezium PostgreSQL Sou...Change Data Capture (CDC) With Kafka Connect® and the Debezium PostgreSQL Sou...
Change Data Capture (CDC) With Kafka Connect® and the Debezium PostgreSQL Sou...
 
Scaling Open Source Big Data Cloud Applications is Easy/Hard
Scaling Open Source Big Data Cloud Applications is Easy/HardScaling Open Source Big Data Cloud Applications is Easy/Hard
Scaling Open Source Big Data Cloud Applications is Easy/Hard
 
OPEN Talk: Scaling Open Source Big Data Cloud Applications is Easy/Hard
OPEN Talk: Scaling Open Source Big Data Cloud Applications is Easy/HardOPEN Talk: Scaling Open Source Big Data Cloud Applications is Easy/Hard
OPEN Talk: Scaling Open Source Big Data Cloud Applications is Easy/Hard
 
A Visual Introduction to Apache Kafka
A Visual Introduction to Apache KafkaA Visual Introduction to Apache Kafka
A Visual Introduction to Apache Kafka
 
Massively Scalable Real-time Geospatial Anomaly Detection with Apache Kafka a...
Massively Scalable Real-time Geospatial Anomaly Detection with Apache Kafka a...Massively Scalable Real-time Geospatial Anomaly Detection with Apache Kafka a...
Massively Scalable Real-time Geospatial Anomaly Detection with Apache Kafka a...
 
Building a real-time data processing pipeline using Apache Kafka, Kafka Conne...
Building a real-time data processing pipeline using Apache Kafka, Kafka Conne...Building a real-time data processing pipeline using Apache Kafka, Kafka Conne...
Building a real-time data processing pipeline using Apache Kafka, Kafka Conne...
 
Grid Middleware – Principles, Practice and Potential
Grid Middleware – Principles, Practice and PotentialGrid Middleware – Principles, Practice and Potential
Grid Middleware – Principles, Practice and Potential
 
Grid middleware is easy to install, configure, secure, debug and manage acros...
Grid middleware is easy to install, configure, secure, debug and manage acros...Grid middleware is easy to install, configure, secure, debug and manage acros...
Grid middleware is easy to install, configure, secure, debug and manage acros...
 
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
 
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
 
Melbourne Big Data Meetup Talk: Scaling a Real-Time Anomaly Detection Applica...
Melbourne Big Data Meetup Talk: Scaling a Real-Time Anomaly Detection Applica...Melbourne Big Data Meetup Talk: Scaling a Real-Time Anomaly Detection Applica...
Melbourne Big Data Meetup Talk: Scaling a Real-Time Anomaly Detection Applica...
 
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
 
0b101000 years of computing: a personal timeline - decade "0", the 1980's
0b101000 years of computing: a personal timeline - decade "0", the 1980's0b101000 years of computing: a personal timeline - decade "0", the 1980's
0b101000 years of computing: a personal timeline - decade "0", the 1980's
 
ApacheCon Berlin 2019: Kongo:Building a Scalable Streaming IoT Application us...
ApacheCon Berlin 2019: Kongo:Building a Scalable Streaming IoT Application us...ApacheCon Berlin 2019: Kongo:Building a Scalable Streaming IoT Application us...
ApacheCon Berlin 2019: Kongo:Building a Scalable Streaming IoT Application us...
 
ApacheCon2019 Talk: Kafka, Cassandra and Kubernetes at Scale – Real-time Ano...
ApacheCon2019 Talk: Kafka, Cassandra and Kubernetesat Scale – Real-time Ano...ApacheCon2019 Talk: Kafka, Cassandra and Kubernetesat Scale – Real-time Ano...
ApacheCon2019 Talk: Kafka, Cassandra and Kubernetes at Scale – Real-time Ano...
 
ApacheCon2019 Talk: Improving the Observability of Cassandra, Kafka and Kuber...
ApacheCon2019 Talk: Improving the Observability of Cassandra, Kafka and Kuber...ApacheCon2019 Talk: Improving the Observability of Cassandra, Kafka and Kuber...
ApacheCon2019 Talk: Improving the Observability of Cassandra, Kafka and Kuber...
 
How to Improve the Observability of Apache Cassandra and Kafka applications...
How to Improve the Observability of Apache Cassandra and Kafka applications...How to Improve the Observability of Apache Cassandra and Kafka applications...
How to Improve the Observability of Apache Cassandra and Kafka applications...
 
A visual introduction to Apache Kafka
A visual introduction to Apache KafkaA visual introduction to Apache Kafka
A visual introduction to Apache Kafka
 

Recently uploaded

Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 

Recently uploaded (20)

Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 

Spinning your Drones with Cadence Workflows and Apache Kafka

  • 1. Spinning your Drones with Cadence Workflows and Apache Kafka® Paul Brebner Instaclustr—Technology Evangelist ©Instaclustr Pty Limited, 2022 APIDAYS Hong Kong - August 2022
  • 2. Who Am I? Previously § R&D in distributed systems and performance engineering. Last 5 years § Technology Evangelist for Instaclustr by NetApp § 100+ Blogs, demo applications, talks § Open Source technologies including o Apache Cassandra®, Spark™, Kafka® o OpenSearch®, Redis™ o and now Uber’s Cadence® © Instaclustr Pty Limited, 2022
  • 3. Cloud Platform for Big Data Open Source Technologies Latest addition is Workflow Orchestration with Instaclustr Managed Platform © Instaclustr Pty Limited, 2022
  • 4. Workflow Orchestration – task ordering Start © Instaclustr Pty Limited, 2022
  • 5. Workflow Orchestration – task ordering Start Task 1 © Instaclustr Pty Limited, 2022
  • 6. Workflow Orchestration – task ordering Start Task 1 Task 2 © Instaclustr Pty Limited, 2022
  • 7. Workflow Orchestration – task ordering Start Task 1 Task 2 End © Instaclustr Pty Limited, 2022
  • 8. Pedalling with a high Cadence (pedal revolutions) is called Spinning! Mashing or grinding is slow (and bad.) (Source: Shutterstock) © Instaclustr Pty Limited, 2022 With
  • 9. Cadence is Fault-Tolerant— Workflows can fail! (Source: Shutterstock) © Instaclustr Pty Limited, 2022
  • 10. Cadence is Fault-Tolerant—Workflows continue from point of failure (Source: Shutterstock) © Instaclustr Pty Limited, 2022
  • 11. Cadence is Horizontally Scalable—the number of workflows is unlimited (Source: Shutterstock) © Instaclustr Pty Limited, 2022
  • 12. Cadence Workflows Are Code @Override public void startWorkflow(String a) { String b = activities.task1(a); String c = activities.task2(b); } A workflow implementation with 2 tasks executed sequentially © Instaclustr Pty Limited, 2022 Start Task 1 Task 2 End
  • 13. Cadence Architecture Instaclustr Managed Service Workers Run workflow logic Customer Managed Clients and Workers Workers Workers Clients and Workers Instaclustr Managed Cadence and Database Clusters Cadence Servers Database Cassandra PostgreSQL Kafka OpenSearch (optional) Java and Go Clients are supported APIs © Instaclustr Pty Limited, 2022
  • 14. § com.uber.cadence.activity APIs to implement activity, accessing activity info, or send heartbeat § com.uber.cadence.client APIs for external application code to interact with Cadence workflows, start workflows, send signals or query workflows. § com.uber.cadence.workflow APIs to implement workflows § com.uber.cadence.worker APIs to configure and start workers And more Cadence Client APIs © Instaclustr Pty Limited, 2022
  • 15. © Instaclustr Pty Limited, 2022 Start Task 1 Task 2 End Database Workflow History Written to Database Start Workflow Start Task 1 End Task 1 HERE How Does Cadence Fault-Tolerance Work? Event-Sourcing = History + Replaying
  • 16. Workflow State Recovery by Replaying History © Instaclustr Pty Limited, 2022 Start Task 1 Task 2 End Database Failure causes complete history replay Replay
  • 17. Workflow State Recovery by Replaying History © Instaclustr Pty Limited, 2022 Start Task 1 Task 2 End Database Replay recreates Workflow state and restart point Replay Restart
  • 18. Cadence Activities Activities (including backwards cycling) can fail © Instaclustr Pty Limited, 2022 (Source: Shutterstock)
  • 19. Activity: Task 2 Activity: Task 1 § Activities are core to Cadence § Remote calls can fail, so wrap them in Activities § They can contain any code § Activities are executed at most once and can be automatically retried on failure Cadence Activities © Instaclustr Pty Limited, 2022 Start End Remote Call
  • 20. Workflow Restrictions: Activities @Override public void startWorkflow(String a) { if (a == null) a = “”; String b = activities.task1(a); // executed at most once long t = Workflow.currentTimeMillis(); String c = activities.task2(t, b); // executed at most once } Replaying must not produce new history events! Activities executed at most once—this ensures that once they succeed then the result is immutable (fixed) © Instaclustr Pty Limited, 2022 Start Activity: Task 1 Activity: Task 2 End Workflow code Workflow code <= 1 <= 1
  • 21. @Override public void startWorkflow(String a) { if (a == null) a = “”; // executed multiple times String b = activities.task1(a); long t = Workflow.currentTimeMillis(); // built-in time method not replayed String c = activities.task2(t, b); } Replaying must not produce new history events! Due to replaying, workflow code executed multiple times, so must be deterministic Use built-in methods for time, sleeping, random, and side-effects © Instaclustr Pty Limited, 2022 Start Activity: Task 1 Activity: Task 2 End Workflow code Workflow code >= 1 >= 1 Workflow Restrictions: Workflows
  • 22. § 100s to Millions of running workflows § Long running processes, sleeping & scheduled tasks § Stateful fault-tolerant applications § Complex workflows § Integration with unreliable external systems § Integration with streaming and event-based systems (E.g. Kafka) § Short workflows (100s of steps) – long workflows (1000s of steps) may take longer to replay history For example? Financial, retail, delivery! Good Use Cases? © Instaclustr Pty Limited, 2022
  • 23. Spinning your Drones! A Drone Delivery Application (Source: Shutterstock) © Instaclustr Pty Limited, 2022
  • 24. Drone Workflow Steps § Charged ready to go at base § Get an Order to deliver § Fly to Order location and collect Order § Fly to Delivery location and drop Order § Fly back to base § Recharge § Repeat © Instaclustr Pty Limited, 2022
  • 25. Base to Order to Delivery to Base Example of Drone Delivery Flight © Instaclustr Pty Limited, 2022 (Source: Shutterstock)
  • 26. Drone Way Point Flight Calculations § Drone flight path is computed in an activity § Using location, distance, bearing, speed, and charge § Every 10 seconds § On failure, the drone won’t crash and will continue flying from the last location Returning to Base Example © Instaclustr Pty Limited, 2022 (Source: Shutterstock)
  • 27. The System: Swim-lane diagrams 1st Workflow: Drone Workflow Recharge © Instaclustr Pty Limited, 2022 Start, Ready, Wait for Order, Movement Activities, Recharge, Repeat
  • 28. Orders Are Also Stateful →Workflow 2nd Workflow: Order Workflow © Instaclustr Pty Limited, 2022 (Source: Shutterstock) Start, Generate locations, ready for drone, update locations, End if delivered
  • 29. Orders Are Also Stateful →Workflow 2nd Workflow: Order Workflow So we need coordination between the workflows: (1) Asynchronous Signaling between workflows 1 © Instaclustr Pty Limited, 2022 (Source: Shutterstock)
  • 30. Next, Cadence Meets Kafka (source: https://bahumbug.wordpress.com/2014/08/03/kafka-onna-bike/)
  • 31. Kafka is a distributed pub-sub streams processing system, it allows distributed producers to send messages to distributed consumers via a Kafka cluster. It uses Topics to loosely couple producers and consumers. What is ©Instaclustr Pty Limited 2019, 2021, 2022 Kafka?
  • 32. Integration with Kafka adds A Kafka Cluster with: 3 Kafka Topics 3 Kafka Producers and 2 Consumers 1 © Instaclustr Pty Limited, 2022
  • 33. (2) Starting a workflow from Kafka 1 © Instaclustr Pty Limited, 2022 2 Integration with Kafka adds
  • 34. (3) Using a Kafka microservice to coordinate Drone and Order workflows 1 © Instaclustr Pty Limited, 2022 3 2 Integration with Kafka adds
  • 35. (Source: Shutterstock) Cadence Orchestration + Kafka Choreography = Drone Ballet? (Source: Wikimedia)
  • 36. Step 1: Customer places an order— Order Sent to Kafka New Orders Topic 1 © Instaclustr Pty Limited, 2022 (Source: Shutterstock)
  • 37. 2 Consumer Step 2: Start New Order Workflow— Kafka Consumer Gets Order, Starts New Order Workflow Using Cadence Client © Instaclustr Pty Limited, 2022 (Source: Shutterstock)
  • 38. 3 Activity Step 3: Order Ready for Drone Pickup— Activity: Send Order Ready Message to Orders Ready Topic © Instaclustr Pty Limited, 2022 (Source: Shutterstock)
  • 39. 4 Activity Consumer A Drone+Order Matching Microservice Step 4: Drone Workflow— Activity: Send Drone Ready Message to Drone Ready Topic, Kafka Consumer Gets an Order ID and Sends Signal Back to Drone to start the order pickup © Instaclustr Pty Limited, 2022 (Source: Shutterstock)
  • 40. 5 Step 5: Drone Workflow—Fly To Order Activity: Fly to Order Location © Instaclustr Pty Limited, 2022 (Source: Shutterstock)
  • 41. 5 Step 5: Drone Workflow—Fly To Order And Pickup Order © Instaclustr Pty Limited, 2022 (Source: Shutterstock)
  • 42. 6 Step 6: Drone Workflow—Fly To Delivery Location Activity: Fly to Delivery Location © Instaclustr Pty Limited, 2022 (Source: Shutterstock)
  • 43. Step 6: Drone Workflow—Fly To Delivery Location And Drop Order; Send Location Updates to Order Workflow Every 10s 6 © Instaclustr Pty Limited, 2022 (Source: Shutterstock)
  • 44. 7 Step 7: Drone Workflow—Fly To Base Activity: Fly to Delivery Location; recharge when back at base and start new drone workflow © Instaclustr Pty Limited, 2022 (Source: Shutterstock)
  • 45. 8 Step 8: Order Workflow—Update Location Receive State and Location Signal From Drone Workflow, Update State; If Delivered Then End Workflow © Instaclustr Pty Limited, 2022 (Source: Shutterstock)
  • 73. How Many Drones Can We Fly? © Instaclustr Pty Limited, 2022 (Source: Shutterstock)
  • 74. Cluster Details (VCPUS): Client (8), Cadence (6), Cassandra (18) 6 18 8 VCPUs Per Cluster (32 total) Cadence Cassandra Client (EC2) © Instaclustr Pty Limited, 2022
  • 75. Load Test 1: “Flat-Out” à Max 50 Drones © Instaclustr Pty Limited, 2022
  • 76. Load Test 2: Real-Time à 2,000 Drones & 4,000 Workflows 2000 2000 4000 0 500 1000 1500 2000 2500 3000 3500 4000 4500 Concurrent Workflows Drones Orders Total 4000/32 = 125 workflows/core © Instaclustr Pty Limited, 2022
  • 77. Further Information: Cadence Polling Cookbook https://cadenceworkflow.io/docs/use- cases/polling/ “MegaBurgers” polling example Integration of Cadence with External 3rd party REST APIs for order state updates, using Polling © Instaclustr Pty Limited, 2022
  • 78. Further Information Cadence (and other) Blogs: https://www.instaclustr.com/paul-brebner/ Try us out! © Instaclustr Pty Limited, 2022
  • 79. © Instaclustr Pty Limited, 2022 20 Drones Flying – Q&A
  • 80. www.instaclustr.com info@instaclustr.com @instaclustr THANK YOU! © Instaclustr Pty Limited, 2022 https://www.instaclustr.com/company/policies/terms-conditions/ Except as permitted by the copyright law applicable to you, you may not reproduce, distribute, publish, display, communicate or transmit any of the content of this document, in any form, but any means, without the prior written permission of Instaclustr Pty Limited