SlideShare a Scribd company logo
1 of 56
Download to read offline
Webscale Workflow
Engine With
Apache Kafka©
Current 2022
Andrey Falko
Software Engineering Architect
https://www.linkedin.com/in/andrey-falko
This presentation contains forward-looking statements about the Company’s financial and operating results, which may include expected GAAP and non-GAAP financial
and other operating and non-operating results, including revenue, net income, earnings per share, operating cash flow growth, operating margin improvement, expected
revenue growth, expected current remaining performance obligation growth, expected tax rates, stock-based compensation expenses, amortization of purchased
intangibles, shares outstanding, market growth, environmental, social and governance goals, expected capital allocation, including mergers and acquisitions, capital
expenditures and other investments, expectations regarding closing contemplated acquisitions and contributions from acquired companies. The achievement or success
of the matters covered by such forward-looking statements involves risks, uncertainties and assumptions. If any such risks or uncertainties materialize or if any of the
assumptions prove incorrect, the Company’s results could differ materially from the results expressed or implied by the forward-looking statements it makes. The risks and
uncertainties referred to above include those factors discussed in Salesforce’s reports filed from time to time with the Securities and Exchange Commission, including, but
not limited to: risks associated with our ability to successfully integrate Slack Technologies, Inc.’s operations; our ability to realize the anticipated benefits of the Slack
Technologies, Inc. transaction; the impact of Slack Technologies, Inc.’s business model on our ability to forecast revenue results; disruption from the transaction making it
more difficult to maintain business and operational relationships; the impact of, and actions we may take in response to, the COVID-19 pandemic, related public health
measures and resulting economic downturn and market volatility; our ability to maintain service performance and security levels meeting the expectations of our
customers, and the resources and costs required to avoid unanticipated downtime and prevent, detect and remediate performance degradation and security breaches;
our ability to secure and costs related to data center capacity and other infrastructure provided by third parties; our reliance on third-party hardware, software and platform
providers; the effect of evolving domestic and foreign government regulations, including those related to the provision of services on the Internet, those related to
accessing the Internet, and those addressing data privacy; current and potential litigation involving us or our industry, including litigation involving acquired entities such
as Tableau; regulatory developments and regulatory investigations involving us or affecting our industry; our ability to successfully introduce new services and product
features, including any efforts to expand our services beyond the CRM market; the success of our strategy of acquiring or making investments in complementary
businesses and strategic partnerships; our ability to compete in the market in which we participate; the success of our business strategy and our plan to build our
business; our ability to execute our business plans; our ability to continue to grow unearned revenue and remaining performance obligation; the pace of change and
innovation in enterprise cloud computing services; the seasonal nature of our sales cycles; our ability to limit customer attrition and costs related to those efforts; the
success of our international expansion strategy; the demands on our personnel and infrastructure resulting from significant growth in our customer base and operations;
our dependency on the development and maintenance of the infrastructure of the Internet; our real estate and office facilities strategy and related costs and uncertainties;
fluctuations in, and our ability to predict, our operating results and cash flows; the variability in our results arising from the accounting for term license revenue products;
the performance and fair value of our investments in complementary businesses through our strategic investment portfolio; our ability to protect our intellectual property
rights; our ability to develop our brands; the valuation of our deferred tax assets and the release of related valuation allowances; uncertainties regarding our tax obligations
in connection with potential jurisdictional transfers of intellectual property; uncertainties regarding the effect of general economic conditions; and risks related to our debt
and lease obligations.
Forward-Looking Statements
102721
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
Agenda
Initial Use Case
Solution Architecture
Components
Putting It All Together: Demo
Next Steps
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
Initial Use Case
● Continuous Integration Systems
○ Convergence
○ Reliability and Scale
Our starting points
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
10K developers
Initial Use Case
● Multiple Definitions
○ CIX - CI Executor
○ Jenkinsfile
○ Tekton
○ and others…
● Governance and Compliance requirements
Converge CI Systems
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
Initial Use Case
● Our ideal
Converge CI Systems
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
Initial Use Case
● 10K developers
○ 10K CI runs per hour
○ 1 hour outage very expensive
○ Delays very expensive
Scale CI Systems
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
Generalized Use Cases
● CI systems are workflow processors
● Workflow engines require state machines
● State machines require persistence
Workflow Engines and State Machines
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
Pending Running Done
Agenda
Initial Use Case
Solution Architecture
Components
Putting It All Together: Demo
Next Steps
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
Solution Architecture
Big Picture
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
Solution Architecture
Big Picture
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
Solution Architecture
Big Picture
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
Solution Architecture
Big Picture
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
Solution Architecture
Big Picture
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
Solution Architecture
Big Picture
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
Solution Architecture
Big Picture
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
Solution Architecture
Reliability Tier 0 vs. Tier 1
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
Solution Architecture
Reliability Overview
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
Objective Components Estimate
Minimize Workflow Run Processing Time
K8s Controlplanes + Kafka
~= 99.99% sub 100ms
Maximize Processing Availability VCS + Kafka + K8s ~= 99.94%
Maximize Insights Availability
K8s Stateless Deployment + Kafka
~= 99.99%
Solution Architecture
Reliability Contrast
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
State Storage Components Estimate
Relational Database
K8s Controlplanes + RDBMS
~= 99.95%
Shared Volume K8s + Shared Volume ~= 99.9%
NoSql Databases
K8s Stateless Deployment + NoSql
~= 99.95%
Kafka
K8s Stateless Deployment + Kafka
~= 99.99%
Solution Architecture
Scale Overview
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
State Storage Main Limits Scale Strategy
Relational Database
1. Number of concurrent writes (row-locking)
2. Storage capacity on leader node
Sharding
Shared Volume
1. Storage capacity on volume
2. Storage volume IOPS
Sharding
NoSql Databases 1. Number of concurrent writes (throughput) Horizontal until ~250 nodes
Kafka
1. Partition size and network throughput: 25k/sec
2. Number of partitions: 100k+
Horizontal until ~250 nodes
Agenda
Initial Use Case
Solution Architecture
Components
Kafka State Topic
Scanner
Executor
Visualization
Putting It All Together: Demo
Next Steps
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
Components
Kafka State Topic
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
Components
Kafka State Topic
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
Components
Workflow Graph
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
Components
Workflow Key
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
Agenda
Initial Use Case
Solution Architecture
Components
Kafka State Topic
Scanner
Executor
Visualization
Putting It All Together: Demo
Next Steps
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
Components
Workflow Scanner
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
Workflow Scanner
First Step: Handle Request
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
1
1
Workflow Scanner
Second Step: Send Run ID
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
1
2
1
Workflow Scanner
Third Step: Download Declaration
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
1
2
1
3
Workflow Scanner
Fourth Step: Send Workflow Graph
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
1
2
1
3
4
Workflow Scanner
On Startup
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
Workflow Scanner
Deployment
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
● Stateless
● Scale concerns:
○ Startup load time of Run IDs
■ Factor of developer submission rate
○ Message size < 1MB compressed
■ ~50k node workflow graph
○ Produce Throughput
■ ~25k/second for ~30 node workflows per kafka partition
Agenda
Initial Use Case
Solution Architecture
Components
Kafka State Topic
Scanner
Executor
Visualization
Putting It All Together: Demo
Next Steps
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
Components
Executor
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
Executor
First Step: Read Workflow Graph
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
1
Workflow Executor
Step Two: Download Workflow Definition
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
1
2
Workflow Executor
Step Three: Process Workflow
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
1
2
3:
Process
Workflow
Workflow Executor
Step Four: Poll Workflow Progress
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
1
2
3:
Process
Workflow
4: Poll
Workflow
Progress
Workflow Executor
Step Five: Report Workflow Result
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
1
2
3:
Process
Workflow
4: Poll
Workflow
Progress
5
Workflow Executor
Workflow Processing
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
Workflow Executor
Workflow Processing
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
Workflow Executor
Deployment
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
● Stateless Deploy
● Scale concerns:
○ Partition starvation
■ Increase partitions with workers
○ Produce Throughput
■ ~25k/second for ~30 node workflows per kafka partition
■ Workflow update frequency increases throughput
Workflow Executor
Counterintuitive Behaviors
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
● Only commit offset when all completed for partition
● Compaction not immediate
○ Tune: max.compaction.lag.ms=500
○ Protect against unallowed state transitions
■ e.g. COMPLETED -> NOT_STARTED
Agenda
Initial Use Case
Solution Architecture
Components
Kafka State Topic
Scanner
Executor
Visualization
Putting It All Together: Demo
Next Steps
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
Solution Architecture
Visualization and Insights
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
Agenda
Initial Use Case
Solution Architecture
Components
Putting It All Together: Demo
Next Steps
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
Putting It All Together
Demo
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
Summary
Modest Start
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
● CI use cases
○ Polyglot workflow processing
● Prototype open sourced
○ https://github.com/salesforce/junction-workflow
Agenda
Initial Use Case
Solution Architecture
Components
Putting It All Together: Demo
Next Steps
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
Next Steps
Prototype to Production
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
● Better partition assignment strategy
● Handling Retention
○ Long term storage integration
■ Workflow logs
■ Workflow results
● Visualization and Insights
○ Integrate with VCS
■ e.g. Github Status API
○ Integration with GUIs
Next Steps
How can you help
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
● Open sourced prototype:
○ https://github.com/salesforce/junction-workflow
○ Large todo list:
■ Generalize to state machine handling library
■ Easy to plugin workflow processors and interfaces
● Plugin registry
● Definition interfaces to workflow graph protobuf
● Workflow initiation and progress library implementations
○ e.g. Airflow, Argo Workflows, Temporal
■ Robust GUI
● Feedback:
○ Anyone tried something similar?
○ What haven’t we considered?
Takeaways
Summary
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
● Kafka compacted topics can be used to
○ Track and manage state machine transitions
○ Count
● When using Kafka, watch out for
○ Reading the full log
○ Throughput per partition
○ Too few partitions
○ Compaction frequency
○ Partition balancing
● General call to action:
○ Use Kafka to make workflow engines more reliable
References
Further Reading
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
● Slides and all links available here: https://github.com/afalko/junction-workflow-demo
● https://github.blog/tag/github-availability-report
● https://about.gitlab.com/handbook/engineering/monitoring
● https://aws.amazon.com/eks/sla
● https://aws.amazon.com/rds/sla
● https://www.azure.cn/en-us/support/sla/mysqldatabaseonazure
● https://cloud.google.com/sql/sla
● Benchmarking Apache Kafka: 2 Million Writes Per Second (On Three Cheap Machines)
● Bulletproof Apache Kafka® with Fault Tree Analysis
● Kestra: https://kestra.io/
○ Another Kafka-based workflow orchestration and scheduling platform
Thank you to
● Contributors
○ Jason Schroeder
○ Manju Prasad
● Supportive management
○ Ravinder Ramchandani
● Lots of supportive colleagues
● Salesforce
Special Thanks
Webscale Workflow Engine With Apache Kafka© - Andrey Falko
https://github.com/salesforce/junction-workflow

More Related Content

Similar to Webscale Workflow Engine With Kafka With Andrey Falko | Current 2022

Force.com Friday: Intro to Force.com
Force.com Friday: Intro to Force.comForce.com Friday: Intro to Force.com
Force.com Friday: Intro to Force.comSalesforce Developers
 
Automate the development lifecycle with cumulus ci on april 9th, 2020
Automate the development lifecycle with cumulus ci on april 9th, 2020Automate the development lifecycle with cumulus ci on april 9th, 2020
Automate the development lifecycle with cumulus ci on april 9th, 2020Sudipta Deb ☁
 
Scaling to Millions of Devices and Billions of Events
Scaling to Millions of Devices and Billions of EventsScaling to Millions of Devices and Billions of Events
Scaling to Millions of Devices and Billions of EventsSalesforce Developers
 
Java Tech & Tools | Deploying Java & Play Framework Apps to the Cloud | Sande...
Java Tech & Tools | Deploying Java & Play Framework Apps to the Cloud | Sande...Java Tech & Tools | Deploying Java & Play Framework Apps to the Cloud | Sande...
Java Tech & Tools | Deploying Java & Play Framework Apps to the Cloud | Sande...JAX London
 
2019 Dreamforce Embedded Analytics
2019 Dreamforce   Embedded Analytics2019 Dreamforce   Embedded Analytics
2019 Dreamforce Embedded Analyticsaaronwinters
 
Forcelandia 2016 Wave App Development
Forcelandia 2016   Wave App DevelopmentForcelandia 2016   Wave App Development
Forcelandia 2016 Wave App DevelopmentSkip Sauls
 
Local development with Open Source Base Components
Local development with Open Source Base ComponentsLocal development with Open Source Base Components
Local development with Open Source Base ComponentsSalesforce Developers
 
Chicago rtf meetup august 17 2021
Chicago rtf meetup august 17 2021Chicago rtf meetup august 17 2021
Chicago rtf meetup august 17 2021prasenjit banerjee
 
Salesforce Lightning Web Components - Open Source
Salesforce Lightning Web Components - Open SourceSalesforce Lightning Web Components - Open Source
Salesforce Lightning Web Components - Open SourceJayant Jindal
 
Taking control of your queries with GraphQL, Alba Rivas
Taking control of your queries with GraphQL, Alba RivasTaking control of your queries with GraphQL, Alba Rivas
Taking control of your queries with GraphQL, Alba RivasCzechDreamin
 
Building einstein analytics apps uk-compressed
Building einstein analytics apps   uk-compressedBuilding einstein analytics apps   uk-compressed
Building einstein analytics apps uk-compressedrikkehovgaard
 
Eda gas andelectricity_meetup-adelaide_pov
Eda gas andelectricity_meetup-adelaide_povEda gas andelectricity_meetup-adelaide_pov
Eda gas andelectricity_meetup-adelaide_povNicholas Bowman
 
Denver MuleSoft Meetup: TDX Talk - Automatically Secure and Manage any API at...
Denver MuleSoft Meetup: TDX Talk - Automatically Secure and Manage any API at...Denver MuleSoft Meetup: TDX Talk - Automatically Secure and Manage any API at...
Denver MuleSoft Meetup: TDX Talk - Automatically Secure and Manage any API at...Big Compass
 
Best Practices for Creating Scalable Apps with Heroku
Best Practices for Creating Scalable Apps with HerokuBest Practices for Creating Scalable Apps with Heroku
Best Practices for Creating Scalable Apps with HerokuSalesforce Developers
 
Trailhead live - Overview of Salesforce App Cloud
Trailhead live - Overview of Salesforce App CloudTrailhead live - Overview of Salesforce App Cloud
Trailhead live - Overview of Salesforce App CloudJohn Stevenson
 
Building Apps Faster with Lightning and Winter '17
Building Apps Faster with Lightning and Winter '17Building Apps Faster with Lightning and Winter '17
Building Apps Faster with Lightning and Winter '17Mark Adcock
 

Similar to Webscale Workflow Engine With Kafka With Andrey Falko | Current 2022 (20)

Force.com Friday: Intro to Force.com
Force.com Friday: Intro to Force.comForce.com Friday: Intro to Force.com
Force.com Friday: Intro to Force.com
 
Automate the development lifecycle with cumulus ci on april 9th, 2020
Automate the development lifecycle with cumulus ci on april 9th, 2020Automate the development lifecycle with cumulus ci on april 9th, 2020
Automate the development lifecycle with cumulus ci on april 9th, 2020
 
Scaling to Millions of Devices and Billions of Events
Scaling to Millions of Devices and Billions of EventsScaling to Millions of Devices and Billions of Events
Scaling to Millions of Devices and Billions of Events
 
Java Tech & Tools | Deploying Java & Play Framework Apps to the Cloud | Sande...
Java Tech & Tools | Deploying Java & Play Framework Apps to the Cloud | Sande...Java Tech & Tools | Deploying Java & Play Framework Apps to the Cloud | Sande...
Java Tech & Tools | Deploying Java & Play Framework Apps to the Cloud | Sande...
 
Winter 14 Release Developer Preview
Winter 14 Release Developer PreviewWinter 14 Release Developer Preview
Winter 14 Release Developer Preview
 
2019 Dreamforce Embedded Analytics
2019 Dreamforce   Embedded Analytics2019 Dreamforce   Embedded Analytics
2019 Dreamforce Embedded Analytics
 
Forcelandia 2016 Wave App Development
Forcelandia 2016   Wave App DevelopmentForcelandia 2016   Wave App Development
Forcelandia 2016 Wave App Development
 
Local development with Open Source Base Components
Local development with Open Source Base ComponentsLocal development with Open Source Base Components
Local development with Open Source Base Components
 
Chicago rtf meetup august 17 2021
Chicago rtf meetup august 17 2021Chicago rtf meetup august 17 2021
Chicago rtf meetup august 17 2021
 
Intro to Apex Programmers
Intro to Apex ProgrammersIntro to Apex Programmers
Intro to Apex Programmers
 
Einstein Analytics for Developers
Einstein Analytics for DevelopersEinstein Analytics for Developers
Einstein Analytics for Developers
 
Salesforce Lightning Web Components - Open Source
Salesforce Lightning Web Components - Open SourceSalesforce Lightning Web Components - Open Source
Salesforce Lightning Web Components - Open Source
 
An Introduction to Lightning Web Components
An Introduction to Lightning Web ComponentsAn Introduction to Lightning Web Components
An Introduction to Lightning Web Components
 
Taking control of your queries with GraphQL, Alba Rivas
Taking control of your queries with GraphQL, Alba RivasTaking control of your queries with GraphQL, Alba Rivas
Taking control of your queries with GraphQL, Alba Rivas
 
Building einstein analytics apps uk-compressed
Building einstein analytics apps   uk-compressedBuilding einstein analytics apps   uk-compressed
Building einstein analytics apps uk-compressed
 
Eda gas andelectricity_meetup-adelaide_pov
Eda gas andelectricity_meetup-adelaide_povEda gas andelectricity_meetup-adelaide_pov
Eda gas andelectricity_meetup-adelaide_pov
 
Denver MuleSoft Meetup: TDX Talk - Automatically Secure and Manage any API at...
Denver MuleSoft Meetup: TDX Talk - Automatically Secure and Manage any API at...Denver MuleSoft Meetup: TDX Talk - Automatically Secure and Manage any API at...
Denver MuleSoft Meetup: TDX Talk - Automatically Secure and Manage any API at...
 
Best Practices for Creating Scalable Apps with Heroku
Best Practices for Creating Scalable Apps with HerokuBest Practices for Creating Scalable Apps with Heroku
Best Practices for Creating Scalable Apps with Heroku
 
Trailhead live - Overview of Salesforce App Cloud
Trailhead live - Overview of Salesforce App CloudTrailhead live - Overview of Salesforce App Cloud
Trailhead live - Overview of Salesforce App Cloud
 
Building Apps Faster with Lightning and Winter '17
Building Apps Faster with Lightning and Winter '17Building Apps Faster with Lightning and Winter '17
Building Apps Faster with Lightning and Winter '17
 

More from HostedbyConfluent

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Renaming a Kafka Topic | Kafka Summit London
Renaming a Kafka Topic | Kafka Summit LondonRenaming a Kafka Topic | Kafka Summit London
Renaming a Kafka Topic | Kafka Summit LondonHostedbyConfluent
 
Evolution of NRT Data Ingestion Pipeline at Trendyol
Evolution of NRT Data Ingestion Pipeline at TrendyolEvolution of NRT Data Ingestion Pipeline at Trendyol
Evolution of NRT Data Ingestion Pipeline at TrendyolHostedbyConfluent
 
Ensuring Kafka Service Resilience: A Dive into Health-Checking Techniques
Ensuring Kafka Service Resilience: A Dive into Health-Checking TechniquesEnsuring Kafka Service Resilience: A Dive into Health-Checking Techniques
Ensuring Kafka Service Resilience: A Dive into Health-Checking TechniquesHostedbyConfluent
 
Exactly-once Stream Processing with Arroyo and Kafka
Exactly-once Stream Processing with Arroyo and KafkaExactly-once Stream Processing with Arroyo and Kafka
Exactly-once Stream Processing with Arroyo and KafkaHostedbyConfluent
 
Fish Plays Pokemon | Kafka Summit London
Fish Plays Pokemon | Kafka Summit LondonFish Plays Pokemon | Kafka Summit London
Fish Plays Pokemon | Kafka Summit LondonHostedbyConfluent
 
Tiered Storage 101 | Kafla Summit London
Tiered Storage 101 | Kafla Summit LondonTiered Storage 101 | Kafla Summit London
Tiered Storage 101 | Kafla Summit LondonHostedbyConfluent
 
Building a Self-Service Stream Processing Portal: How And Why
Building a Self-Service Stream Processing Portal: How And WhyBuilding a Self-Service Stream Processing Portal: How And Why
Building a Self-Service Stream Processing Portal: How And WhyHostedbyConfluent
 
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...HostedbyConfluent
 
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...HostedbyConfluent
 
Navigating Private Network Connectivity Options for Kafka Clusters
Navigating Private Network Connectivity Options for Kafka ClustersNavigating Private Network Connectivity Options for Kafka Clusters
Navigating Private Network Connectivity Options for Kafka ClustersHostedbyConfluent
 
Apache Flink: Building a Company-wide Self-service Streaming Data Platform
Apache Flink: Building a Company-wide Self-service Streaming Data PlatformApache Flink: Building a Company-wide Self-service Streaming Data Platform
Apache Flink: Building a Company-wide Self-service Streaming Data PlatformHostedbyConfluent
 
Explaining How Real-Time GenAI Works in a Noisy Pub
Explaining How Real-Time GenAI Works in a Noisy PubExplaining How Real-Time GenAI Works in a Noisy Pub
Explaining How Real-Time GenAI Works in a Noisy PubHostedbyConfluent
 
TL;DR Kafka Metrics | Kafka Summit London
TL;DR Kafka Metrics | Kafka Summit LondonTL;DR Kafka Metrics | Kafka Summit London
TL;DR Kafka Metrics | Kafka Summit LondonHostedbyConfluent
 
A Window Into Your Kafka Streams Tasks | KSL
A Window Into Your Kafka Streams Tasks | KSLA Window Into Your Kafka Streams Tasks | KSL
A Window Into Your Kafka Streams Tasks | KSLHostedbyConfluent
 
Mastering Kafka Producer Configs: A Guide to Optimizing Performance
Mastering Kafka Producer Configs: A Guide to Optimizing PerformanceMastering Kafka Producer Configs: A Guide to Optimizing Performance
Mastering Kafka Producer Configs: A Guide to Optimizing PerformanceHostedbyConfluent
 
Data Contracts Management: Schema Registry and Beyond
Data Contracts Management: Schema Registry and BeyondData Contracts Management: Schema Registry and Beyond
Data Contracts Management: Schema Registry and BeyondHostedbyConfluent
 
Code-First Approach: Crafting Efficient Flink Apps
Code-First Approach: Crafting Efficient Flink AppsCode-First Approach: Crafting Efficient Flink Apps
Code-First Approach: Crafting Efficient Flink AppsHostedbyConfluent
 
Debezium vs. the World: An Overview of the CDC Ecosystem
Debezium vs. the World: An Overview of the CDC EcosystemDebezium vs. the World: An Overview of the CDC Ecosystem
Debezium vs. the World: An Overview of the CDC EcosystemHostedbyConfluent
 
Beyond Tiered Storage: Serverless Kafka with No Local Disks
Beyond Tiered Storage: Serverless Kafka with No Local DisksBeyond Tiered Storage: Serverless Kafka with No Local Disks
Beyond Tiered Storage: Serverless Kafka with No Local DisksHostedbyConfluent
 

More from HostedbyConfluent (20)

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Renaming a Kafka Topic | Kafka Summit London
Renaming a Kafka Topic | Kafka Summit LondonRenaming a Kafka Topic | Kafka Summit London
Renaming a Kafka Topic | Kafka Summit London
 
Evolution of NRT Data Ingestion Pipeline at Trendyol
Evolution of NRT Data Ingestion Pipeline at TrendyolEvolution of NRT Data Ingestion Pipeline at Trendyol
Evolution of NRT Data Ingestion Pipeline at Trendyol
 
Ensuring Kafka Service Resilience: A Dive into Health-Checking Techniques
Ensuring Kafka Service Resilience: A Dive into Health-Checking TechniquesEnsuring Kafka Service Resilience: A Dive into Health-Checking Techniques
Ensuring Kafka Service Resilience: A Dive into Health-Checking Techniques
 
Exactly-once Stream Processing with Arroyo and Kafka
Exactly-once Stream Processing with Arroyo and KafkaExactly-once Stream Processing with Arroyo and Kafka
Exactly-once Stream Processing with Arroyo and Kafka
 
Fish Plays Pokemon | Kafka Summit London
Fish Plays Pokemon | Kafka Summit LondonFish Plays Pokemon | Kafka Summit London
Fish Plays Pokemon | Kafka Summit London
 
Tiered Storage 101 | Kafla Summit London
Tiered Storage 101 | Kafla Summit LondonTiered Storage 101 | Kafla Summit London
Tiered Storage 101 | Kafla Summit London
 
Building a Self-Service Stream Processing Portal: How And Why
Building a Self-Service Stream Processing Portal: How And WhyBuilding a Self-Service Stream Processing Portal: How And Why
Building a Self-Service Stream Processing Portal: How And Why
 
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
 
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
 
Navigating Private Network Connectivity Options for Kafka Clusters
Navigating Private Network Connectivity Options for Kafka ClustersNavigating Private Network Connectivity Options for Kafka Clusters
Navigating Private Network Connectivity Options for Kafka Clusters
 
Apache Flink: Building a Company-wide Self-service Streaming Data Platform
Apache Flink: Building a Company-wide Self-service Streaming Data PlatformApache Flink: Building a Company-wide Self-service Streaming Data Platform
Apache Flink: Building a Company-wide Self-service Streaming Data Platform
 
Explaining How Real-Time GenAI Works in a Noisy Pub
Explaining How Real-Time GenAI Works in a Noisy PubExplaining How Real-Time GenAI Works in a Noisy Pub
Explaining How Real-Time GenAI Works in a Noisy Pub
 
TL;DR Kafka Metrics | Kafka Summit London
TL;DR Kafka Metrics | Kafka Summit LondonTL;DR Kafka Metrics | Kafka Summit London
TL;DR Kafka Metrics | Kafka Summit London
 
A Window Into Your Kafka Streams Tasks | KSL
A Window Into Your Kafka Streams Tasks | KSLA Window Into Your Kafka Streams Tasks | KSL
A Window Into Your Kafka Streams Tasks | KSL
 
Mastering Kafka Producer Configs: A Guide to Optimizing Performance
Mastering Kafka Producer Configs: A Guide to Optimizing PerformanceMastering Kafka Producer Configs: A Guide to Optimizing Performance
Mastering Kafka Producer Configs: A Guide to Optimizing Performance
 
Data Contracts Management: Schema Registry and Beyond
Data Contracts Management: Schema Registry and BeyondData Contracts Management: Schema Registry and Beyond
Data Contracts Management: Schema Registry and Beyond
 
Code-First Approach: Crafting Efficient Flink Apps
Code-First Approach: Crafting Efficient Flink AppsCode-First Approach: Crafting Efficient Flink Apps
Code-First Approach: Crafting Efficient Flink Apps
 
Debezium vs. the World: An Overview of the CDC Ecosystem
Debezium vs. the World: An Overview of the CDC EcosystemDebezium vs. the World: An Overview of the CDC Ecosystem
Debezium vs. the World: An Overview of the CDC Ecosystem
 
Beyond Tiered Storage: Serverless Kafka with No Local Disks
Beyond Tiered Storage: Serverless Kafka with No Local DisksBeyond Tiered Storage: Serverless Kafka with No Local Disks
Beyond Tiered Storage: Serverless Kafka with No Local Disks
 

Recently uploaded

Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 

Recently uploaded (20)

Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 

Webscale Workflow Engine With Kafka With Andrey Falko | Current 2022

  • 1. Webscale Workflow Engine With Apache Kafka© Current 2022 Andrey Falko Software Engineering Architect https://www.linkedin.com/in/andrey-falko
  • 2. This presentation contains forward-looking statements about the Company’s financial and operating results, which may include expected GAAP and non-GAAP financial and other operating and non-operating results, including revenue, net income, earnings per share, operating cash flow growth, operating margin improvement, expected revenue growth, expected current remaining performance obligation growth, expected tax rates, stock-based compensation expenses, amortization of purchased intangibles, shares outstanding, market growth, environmental, social and governance goals, expected capital allocation, including mergers and acquisitions, capital expenditures and other investments, expectations regarding closing contemplated acquisitions and contributions from acquired companies. The achievement or success of the matters covered by such forward-looking statements involves risks, uncertainties and assumptions. If any such risks or uncertainties materialize or if any of the assumptions prove incorrect, the Company’s results could differ materially from the results expressed or implied by the forward-looking statements it makes. The risks and uncertainties referred to above include those factors discussed in Salesforce’s reports filed from time to time with the Securities and Exchange Commission, including, but not limited to: risks associated with our ability to successfully integrate Slack Technologies, Inc.’s operations; our ability to realize the anticipated benefits of the Slack Technologies, Inc. transaction; the impact of Slack Technologies, Inc.’s business model on our ability to forecast revenue results; disruption from the transaction making it more difficult to maintain business and operational relationships; the impact of, and actions we may take in response to, the COVID-19 pandemic, related public health measures and resulting economic downturn and market volatility; our ability to maintain service performance and security levels meeting the expectations of our customers, and the resources and costs required to avoid unanticipated downtime and prevent, detect and remediate performance degradation and security breaches; our ability to secure and costs related to data center capacity and other infrastructure provided by third parties; our reliance on third-party hardware, software and platform providers; the effect of evolving domestic and foreign government regulations, including those related to the provision of services on the Internet, those related to accessing the Internet, and those addressing data privacy; current and potential litigation involving us or our industry, including litigation involving acquired entities such as Tableau; regulatory developments and regulatory investigations involving us or affecting our industry; our ability to successfully introduce new services and product features, including any efforts to expand our services beyond the CRM market; the success of our strategy of acquiring or making investments in complementary businesses and strategic partnerships; our ability to compete in the market in which we participate; the success of our business strategy and our plan to build our business; our ability to execute our business plans; our ability to continue to grow unearned revenue and remaining performance obligation; the pace of change and innovation in enterprise cloud computing services; the seasonal nature of our sales cycles; our ability to limit customer attrition and costs related to those efforts; the success of our international expansion strategy; the demands on our personnel and infrastructure resulting from significant growth in our customer base and operations; our dependency on the development and maintenance of the infrastructure of the Internet; our real estate and office facilities strategy and related costs and uncertainties; fluctuations in, and our ability to predict, our operating results and cash flows; the variability in our results arising from the accounting for term license revenue products; the performance and fair value of our investments in complementary businesses through our strategic investment portfolio; our ability to protect our intellectual property rights; our ability to develop our brands; the valuation of our deferred tax assets and the release of related valuation allowances; uncertainties regarding our tax obligations in connection with potential jurisdictional transfers of intellectual property; uncertainties regarding the effect of general economic conditions; and risks related to our debt and lease obligations. Forward-Looking Statements 102721 Webscale Workflow Engine With Apache Kafka© - Andrey Falko
  • 3. Agenda Initial Use Case Solution Architecture Components Putting It All Together: Demo Next Steps Webscale Workflow Engine With Apache Kafka© - Andrey Falko
  • 4. Initial Use Case ● Continuous Integration Systems ○ Convergence ○ Reliability and Scale Our starting points Webscale Workflow Engine With Apache Kafka© - Andrey Falko 10K developers
  • 5. Initial Use Case ● Multiple Definitions ○ CIX - CI Executor ○ Jenkinsfile ○ Tekton ○ and others… ● Governance and Compliance requirements Converge CI Systems Webscale Workflow Engine With Apache Kafka© - Andrey Falko
  • 6. Initial Use Case ● Our ideal Converge CI Systems Webscale Workflow Engine With Apache Kafka© - Andrey Falko
  • 7. Initial Use Case ● 10K developers ○ 10K CI runs per hour ○ 1 hour outage very expensive ○ Delays very expensive Scale CI Systems Webscale Workflow Engine With Apache Kafka© - Andrey Falko
  • 8. Generalized Use Cases ● CI systems are workflow processors ● Workflow engines require state machines ● State machines require persistence Workflow Engines and State Machines Webscale Workflow Engine With Apache Kafka© - Andrey Falko Pending Running Done
  • 9. Agenda Initial Use Case Solution Architecture Components Putting It All Together: Demo Next Steps Webscale Workflow Engine With Apache Kafka© - Andrey Falko
  • 10. Solution Architecture Big Picture Webscale Workflow Engine With Apache Kafka© - Andrey Falko
  • 11. Solution Architecture Big Picture Webscale Workflow Engine With Apache Kafka© - Andrey Falko
  • 12. Solution Architecture Big Picture Webscale Workflow Engine With Apache Kafka© - Andrey Falko
  • 13. Solution Architecture Big Picture Webscale Workflow Engine With Apache Kafka© - Andrey Falko
  • 14. Solution Architecture Big Picture Webscale Workflow Engine With Apache Kafka© - Andrey Falko
  • 15. Solution Architecture Big Picture Webscale Workflow Engine With Apache Kafka© - Andrey Falko
  • 16. Solution Architecture Big Picture Webscale Workflow Engine With Apache Kafka© - Andrey Falko
  • 17. Solution Architecture Reliability Tier 0 vs. Tier 1 Webscale Workflow Engine With Apache Kafka© - Andrey Falko
  • 18. Solution Architecture Reliability Overview Webscale Workflow Engine With Apache Kafka© - Andrey Falko Objective Components Estimate Minimize Workflow Run Processing Time K8s Controlplanes + Kafka ~= 99.99% sub 100ms Maximize Processing Availability VCS + Kafka + K8s ~= 99.94% Maximize Insights Availability K8s Stateless Deployment + Kafka ~= 99.99%
  • 19. Solution Architecture Reliability Contrast Webscale Workflow Engine With Apache Kafka© - Andrey Falko State Storage Components Estimate Relational Database K8s Controlplanes + RDBMS ~= 99.95% Shared Volume K8s + Shared Volume ~= 99.9% NoSql Databases K8s Stateless Deployment + NoSql ~= 99.95% Kafka K8s Stateless Deployment + Kafka ~= 99.99%
  • 20. Solution Architecture Scale Overview Webscale Workflow Engine With Apache Kafka© - Andrey Falko State Storage Main Limits Scale Strategy Relational Database 1. Number of concurrent writes (row-locking) 2. Storage capacity on leader node Sharding Shared Volume 1. Storage capacity on volume 2. Storage volume IOPS Sharding NoSql Databases 1. Number of concurrent writes (throughput) Horizontal until ~250 nodes Kafka 1. Partition size and network throughput: 25k/sec 2. Number of partitions: 100k+ Horizontal until ~250 nodes
  • 21. Agenda Initial Use Case Solution Architecture Components Kafka State Topic Scanner Executor Visualization Putting It All Together: Demo Next Steps Webscale Workflow Engine With Apache Kafka© - Andrey Falko
  • 22. Components Kafka State Topic Webscale Workflow Engine With Apache Kafka© - Andrey Falko
  • 23. Components Kafka State Topic Webscale Workflow Engine With Apache Kafka© - Andrey Falko
  • 24. Components Workflow Graph Webscale Workflow Engine With Apache Kafka© - Andrey Falko
  • 25. Components Workflow Key Webscale Workflow Engine With Apache Kafka© - Andrey Falko
  • 26. Agenda Initial Use Case Solution Architecture Components Kafka State Topic Scanner Executor Visualization Putting It All Together: Demo Next Steps Webscale Workflow Engine With Apache Kafka© - Andrey Falko
  • 27. Components Workflow Scanner Webscale Workflow Engine With Apache Kafka© - Andrey Falko
  • 28. Workflow Scanner First Step: Handle Request Webscale Workflow Engine With Apache Kafka© - Andrey Falko 1 1
  • 29. Workflow Scanner Second Step: Send Run ID Webscale Workflow Engine With Apache Kafka© - Andrey Falko 1 2 1
  • 30. Workflow Scanner Third Step: Download Declaration Webscale Workflow Engine With Apache Kafka© - Andrey Falko 1 2 1 3
  • 31. Workflow Scanner Fourth Step: Send Workflow Graph Webscale Workflow Engine With Apache Kafka© - Andrey Falko 1 2 1 3 4
  • 32. Workflow Scanner On Startup Webscale Workflow Engine With Apache Kafka© - Andrey Falko
  • 33. Workflow Scanner Deployment Webscale Workflow Engine With Apache Kafka© - Andrey Falko ● Stateless ● Scale concerns: ○ Startup load time of Run IDs ■ Factor of developer submission rate ○ Message size < 1MB compressed ■ ~50k node workflow graph ○ Produce Throughput ■ ~25k/second for ~30 node workflows per kafka partition
  • 34. Agenda Initial Use Case Solution Architecture Components Kafka State Topic Scanner Executor Visualization Putting It All Together: Demo Next Steps Webscale Workflow Engine With Apache Kafka© - Andrey Falko
  • 35. Components Executor Webscale Workflow Engine With Apache Kafka© - Andrey Falko
  • 36. Executor First Step: Read Workflow Graph Webscale Workflow Engine With Apache Kafka© - Andrey Falko 1
  • 37. Workflow Executor Step Two: Download Workflow Definition Webscale Workflow Engine With Apache Kafka© - Andrey Falko 1 2
  • 38. Workflow Executor Step Three: Process Workflow Webscale Workflow Engine With Apache Kafka© - Andrey Falko 1 2 3: Process Workflow
  • 39. Workflow Executor Step Four: Poll Workflow Progress Webscale Workflow Engine With Apache Kafka© - Andrey Falko 1 2 3: Process Workflow 4: Poll Workflow Progress
  • 40. Workflow Executor Step Five: Report Workflow Result Webscale Workflow Engine With Apache Kafka© - Andrey Falko 1 2 3: Process Workflow 4: Poll Workflow Progress 5
  • 41. Workflow Executor Workflow Processing Webscale Workflow Engine With Apache Kafka© - Andrey Falko
  • 42. Workflow Executor Workflow Processing Webscale Workflow Engine With Apache Kafka© - Andrey Falko
  • 43. Workflow Executor Deployment Webscale Workflow Engine With Apache Kafka© - Andrey Falko ● Stateless Deploy ● Scale concerns: ○ Partition starvation ■ Increase partitions with workers ○ Produce Throughput ■ ~25k/second for ~30 node workflows per kafka partition ■ Workflow update frequency increases throughput
  • 44. Workflow Executor Counterintuitive Behaviors Webscale Workflow Engine With Apache Kafka© - Andrey Falko ● Only commit offset when all completed for partition ● Compaction not immediate ○ Tune: max.compaction.lag.ms=500 ○ Protect against unallowed state transitions ■ e.g. COMPLETED -> NOT_STARTED
  • 45. Agenda Initial Use Case Solution Architecture Components Kafka State Topic Scanner Executor Visualization Putting It All Together: Demo Next Steps Webscale Workflow Engine With Apache Kafka© - Andrey Falko
  • 46. Solution Architecture Visualization and Insights Webscale Workflow Engine With Apache Kafka© - Andrey Falko
  • 47. Agenda Initial Use Case Solution Architecture Components Putting It All Together: Demo Next Steps Webscale Workflow Engine With Apache Kafka© - Andrey Falko
  • 48. Putting It All Together Demo Webscale Workflow Engine With Apache Kafka© - Andrey Falko
  • 49. Summary Modest Start Webscale Workflow Engine With Apache Kafka© - Andrey Falko ● CI use cases ○ Polyglot workflow processing ● Prototype open sourced ○ https://github.com/salesforce/junction-workflow
  • 50. Agenda Initial Use Case Solution Architecture Components Putting It All Together: Demo Next Steps Webscale Workflow Engine With Apache Kafka© - Andrey Falko
  • 51. Next Steps Prototype to Production Webscale Workflow Engine With Apache Kafka© - Andrey Falko ● Better partition assignment strategy ● Handling Retention ○ Long term storage integration ■ Workflow logs ■ Workflow results ● Visualization and Insights ○ Integrate with VCS ■ e.g. Github Status API ○ Integration with GUIs
  • 52. Next Steps How can you help Webscale Workflow Engine With Apache Kafka© - Andrey Falko ● Open sourced prototype: ○ https://github.com/salesforce/junction-workflow ○ Large todo list: ■ Generalize to state machine handling library ■ Easy to plugin workflow processors and interfaces ● Plugin registry ● Definition interfaces to workflow graph protobuf ● Workflow initiation and progress library implementations ○ e.g. Airflow, Argo Workflows, Temporal ■ Robust GUI ● Feedback: ○ Anyone tried something similar? ○ What haven’t we considered?
  • 53. Takeaways Summary Webscale Workflow Engine With Apache Kafka© - Andrey Falko ● Kafka compacted topics can be used to ○ Track and manage state machine transitions ○ Count ● When using Kafka, watch out for ○ Reading the full log ○ Throughput per partition ○ Too few partitions ○ Compaction frequency ○ Partition balancing ● General call to action: ○ Use Kafka to make workflow engines more reliable
  • 54. References Further Reading Webscale Workflow Engine With Apache Kafka© - Andrey Falko ● Slides and all links available here: https://github.com/afalko/junction-workflow-demo ● https://github.blog/tag/github-availability-report ● https://about.gitlab.com/handbook/engineering/monitoring ● https://aws.amazon.com/eks/sla ● https://aws.amazon.com/rds/sla ● https://www.azure.cn/en-us/support/sla/mysqldatabaseonazure ● https://cloud.google.com/sql/sla ● Benchmarking Apache Kafka: 2 Million Writes Per Second (On Three Cheap Machines) ● Bulletproof Apache Kafka® with Fault Tree Analysis ● Kestra: https://kestra.io/ ○ Another Kafka-based workflow orchestration and scheduling platform
  • 55. Thank you to ● Contributors ○ Jason Schroeder ○ Manju Prasad ● Supportive management ○ Ravinder Ramchandani ● Lots of supportive colleagues ● Salesforce Special Thanks Webscale Workflow Engine With Apache Kafka© - Andrey Falko