SlideShare a Scribd company logo
1 of 26
Processing multi-million
events per second Walmart
Kafka Streams at Scale
Deepak Goyal
Customer Backbone
Walmart Labs
Kafka Streams’
Challenges
1. Fault Recovery
2. Horizontal Scalability
3. Cloud Readiness
4. RocksDB
5. Large Clusters
@walmartlabs
App Instance
Kafka Streams
Task
task
consumer
processor
rocks
db
producer
akka
server
task
consumer
processor
rocks
db
producer
akka
server
task
consumer
processor
rocks
db
producer
akka
server
@walmartlabs
Kafka Streams
Instance
Event Flow
kafka cluster
app cluster
task-0 task-0’
stand-by
task-0’’
stand-by
change-log topic
partition 0’’
partition 0’
partition 0
input topic
partition 0’’
partition 0’
partition 0
rocks
db
rocks
db
active
rocks
db
Event Flow
@walmartlabs
Challenges
1. Fault Recovery
2. Horizontal Scalability
3. Cloud Readiness
4. RocksDB
5. Large Clusters
@walmartlabs
app cluster
task-0’
stand-by
task-0
kafka cluster
task-0’
new
stand-by
change-log topic
partition 0’’
partition 0’
partition 0
input topic
partition 0’’
partition 0’
partition 0
active
rocks
db
rocks
db
the source of truth
stand-by recovery
Default Bootstrap
empty
rocks
db
@walmartlabs
Default
Bootstrap
ChangeLog topic as a source of truth
• Slow stand-by recovery
• Log-Compacted change-log topics
• Inefficient disk usage
@walmartlabs
app cluster
task-0’
stand-by
task-0 task-0’
new
stand-by
kafka cluster
change-log topic
partition 0’’
partition 0’
partition 0
input topic
partition 0’’
partition 0’
partition 0
active
rocks
db
rocks
db
the source of truth
Cold Bootstrap
empty
rocks
db
rocks
db
enhanced stand-by recovery
the new source of truth
@walmartlabs
Cold
Bootstrap
@walmartlabs
Active topic as a source of truth
• Lightning stand-by recovery
• Efficient disk usage
• Bootstrap across data centers
Challenges
1. Fault Recovery
2. Horizontal Scalability
3. Cloud Readiness
4. RocksDB
5. Large Clusters
@walmartlabs
partition-0 0,4,8
partition-1 1,5,9
partition-2 2,6,10
partition-3 3,7,11
Repartitioning
Logic
partition-0 0,2,4,6,8,10
partition-1 1,3,5,7,9,11
partition-0 0,2,4,6,8,10
partition-1 1,3,5,7,9,11
partition-2 0,2,4,6,8,10
partition-3 1,3,5,7,9,11
partition-2 0,2,4,6,8,10
partition-3 1,3,5,7,9,11
@walmartlabs
Dynamic
Repartitioning
app cluster
task-0
active
rocks
db
task-0’
stand-by
rocks
db
task-0’’ or 2
future stand-by
rocks
db
task-2
becomes active
rocks
db
task-2’
new stand-by
empty
rocks
db
rocks
db
@walmartlabs
Scaling up from 2 to 4 partitions
Scaling
Lookups
Queryable Stand-by
AKKA Server (Non Blocking IO)
Partition Specific Lookups
@walmartlabs
Challenges
1. Fault Recovery
2. Horizontal Scalability
3. Cloud Readiness
4. RocksDB
5. Large Clusters
@walmartlabs
AZ/Rack Aware
Task Assignment
AZ2 AZ3AZ1
task-0
active
rocks
db
task-0’’
stand-by
rocks
db
task-1
active
rocks
db
task-1’
stand-by
rocks
db
task-0’
stand-by
rocks
db
task-1’’
stand-by
rocks
db
StickyTaskAssignor using RACK_ID_CONFIG = “rack.id”;
@walmartlabs
Cloud
Maintenance
AZ3AZ1
task-0
active
rocks
db
task-0’’
stand-by
rocks
db
AZ2
task-0’
stand-by
rocks
db
task-1
active
rocks
db
task-1’
stand-by
rocks
db
task-1task-1’’
stand-by
rocks
db
becomes active
@walmartlabs
StickyTaskAssignor (ClusterSizeThreshold>=4)
AZ2
task-0’
stand-by
rocks
db
task-1’
stand-by
rocks
db
Challenges
1. Fault Recovery
2. Horizontal Scalability
3. Cloud Readiness
4. RocksDB
5. Large Clusters
@walmartlabs
Enhancements
to Streams’
RocksDB
•Eliminated Synchronized GETs
•Column Family support
•Queryable in suspended and
restoration state
@walmartlabs
Challenges
1. Fault Recovery
2. Horizontal Scalability
3. Cloud Readiness
4. RocksDB
5. Large Clusters
@walmartlabs
Large Clusters
Rebalance time
• Bottleneck: Group Leader Broker
• Partition Assignment Info
• Compression
• Better Encoding
• 24x smaller in terms of size
@walmartlabs
Broker Configs
Overriding Broker Defaults
• message.max.bytes
• offsets.load.buffer.size
• replica.fetch.max.bytes
• socket.request.max.bytes
@walmartlabs
Streams
Configs
Overriding Streams Defaults
• acks
• linger.ms
• auto.offset.reset
• retries
• state.cleanup.delay.ms
@walmartlabs
Results
@walmartlabs
Staging Benchmark
Kafka Cluster 17 XL VMs
Streams Cluster 100 M VMs
Processing Rate 2.3 million events per second
Up Next
• Feature Extraction and Model Inferencing 😎
• Cold Bootstrap from other stand-by 😍
• Cold-Bootstrap and Repartitioning for DSL🧐
• TTL support for RocksDB 🧐
• Merge Operator for RocksJava 😥
• Chaining Kafka Streams Apps 🧐
• Multi Tenancy 🧐 😪 🧐 😵
@walmartlabs
keep-streaming
. . . . . . . . . . . . . . . .
. . .
We are hiring!
@deepak-iiit
Walmart

More Related Content

What's hot

Rethinking Stream Processing with Apache Kafka: Applications vs. Clusters, St...
Rethinking Stream Processing with Apache Kafka: Applications vs. Clusters, St...Rethinking Stream Processing with Apache Kafka: Applications vs. Clusters, St...
Rethinking Stream Processing with Apache Kafka: Applications vs. Clusters, St...
Michael Noll
 
Solutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
Solutions for bi-directional Integration between Oracle RDMBS & Apache KafkaSolutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
Solutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
Guido Schmutz
 
Tachyon meetup San Francisco Oct 2014
Tachyon meetup San Francisco Oct 2014Tachyon meetup San Francisco Oct 2014
Tachyon meetup San Francisco Oct 2014
Claudiu Barbura
 

What's hot (20)

Building Out Your Kafka Developer CDC Ecosystem
Building Out Your Kafka Developer CDC  EcosystemBuilding Out Your Kafka Developer CDC  Ecosystem
Building Out Your Kafka Developer CDC Ecosystem
 
Real-Time Stream Processing with KSQL and Apache Kafka
Real-Time Stream Processing with KSQL and Apache KafkaReal-Time Stream Processing with KSQL and Apache Kafka
Real-Time Stream Processing with KSQL and Apache Kafka
 
Spark Job Server and Spark as a Query Engine (Spark Meetup 5/14)
Spark Job Server and Spark as a Query Engine (Spark Meetup 5/14)Spark Job Server and Spark as a Query Engine (Spark Meetup 5/14)
Spark Job Server and Spark as a Query Engine (Spark Meetup 5/14)
 
London Apache Kafka Meetup (Jan 2017)
London Apache Kafka Meetup (Jan 2017)London Apache Kafka Meetup (Jan 2017)
London Apache Kafka Meetup (Jan 2017)
 
Streaming Microservices With Akka Streams And Kafka Streams
Streaming Microservices With Akka Streams And Kafka StreamsStreaming Microservices With Akka Streams And Kafka Streams
Streaming Microservices With Akka Streams And Kafka Streams
 
xPatterns on Spark, Shark, Mesos, Tachyon
xPatterns on Spark, Shark, Mesos, TachyonxPatterns on Spark, Shark, Mesos, Tachyon
xPatterns on Spark, Shark, Mesos, Tachyon
 
Rethinking Stream Processing with Apache Kafka: Applications vs. Clusters, St...
Rethinking Stream Processing with Apache Kafka: Applications vs. Clusters, St...Rethinking Stream Processing with Apache Kafka: Applications vs. Clusters, St...
Rethinking Stream Processing with Apache Kafka: Applications vs. Clusters, St...
 
From Zero to Hero with Kafka Connect
From Zero to Hero with Kafka ConnectFrom Zero to Hero with Kafka Connect
From Zero to Hero with Kafka Connect
 
A Tale of Two APIs: Using Spark Streaming In Production
A Tale of Two APIs: Using Spark Streaming In ProductionA Tale of Two APIs: Using Spark Streaming In Production
A Tale of Two APIs: Using Spark Streaming In Production
 
Gwen Shapira, Confluent | Kafka Summit 2020 Keynote | Kafka’s New Architecture
Gwen Shapira, Confluent | Kafka Summit 2020 Keynote | Kafka’s New ArchitectureGwen Shapira, Confluent | Kafka Summit 2020 Keynote | Kafka’s New Architecture
Gwen Shapira, Confluent | Kafka Summit 2020 Keynote | Kafka’s New Architecture
 
Solutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
Solutions for bi-directional Integration between Oracle RDMBS & Apache KafkaSolutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
Solutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
 
Docker. Does it matter for Java developer ?
Docker. Does it matter for Java developer ?Docker. Does it matter for Java developer ?
Docker. Does it matter for Java developer ?
 
A Journey through the JDKs (Java 9 to Java 11)
A Journey through the JDKs (Java 9 to Java 11)A Journey through the JDKs (Java 9 to Java 11)
A Journey through the JDKs (Java 9 to Java 11)
 
Spring Kafka beyond the basics - Lessons learned on our Kafka journey (Tim va...
Spring Kafka beyond the basics - Lessons learned on our Kafka journey (Tim va...Spring Kafka beyond the basics - Lessons learned on our Kafka journey (Tim va...
Spring Kafka beyond the basics - Lessons learned on our Kafka journey (Tim va...
 
Welcome to Kafka; We’re Glad You’re Here (Dave Klein, Centene) Kafka Summit 2020
Welcome to Kafka; We’re Glad You’re Here (Dave Klein, Centene) Kafka Summit 2020Welcome to Kafka; We’re Glad You’re Here (Dave Klein, Centene) Kafka Summit 2020
Welcome to Kafka; We’re Glad You’re Here (Dave Klein, Centene) Kafka Summit 2020
 
Un'introduzione a Kafka Streams e KSQL... and why they matter!
Un'introduzione a Kafka Streams e KSQL... and why they matter!Un'introduzione a Kafka Streams e KSQL... and why they matter!
Un'introduzione a Kafka Streams e KSQL... and why they matter!
 
Tachyon meetup San Francisco Oct 2014
Tachyon meetup San Francisco Oct 2014Tachyon meetup San Francisco Oct 2014
Tachyon meetup San Francisco Oct 2014
 
Streaming Data from Scylla to Kafka
Streaming Data from Scylla to KafkaStreaming Data from Scylla to Kafka
Streaming Data from Scylla to Kafka
 
Apache kafka meet_up_zurich_at_swissre_from_zero_to_hero_with_kafka_connect_2...
Apache kafka meet_up_zurich_at_swissre_from_zero_to_hero_with_kafka_connect_2...Apache kafka meet_up_zurich_at_swissre_from_zero_to_hero_with_kafka_connect_2...
Apache kafka meet_up_zurich_at_swissre_from_zero_to_hero_with_kafka_connect_2...
 
KSQL Intro
KSQL IntroKSQL Intro
KSQL Intro
 

Similar to Kafka Streams at Scale (Deepak Goyal, Walmart Labs) Kafka Summit NYC 2019

Oreilly Webcast Jan 09, 2009
Oreilly Webcast Jan 09, 2009Oreilly Webcast Jan 09, 2009
Oreilly Webcast Jan 09, 2009
Sean Hull
 
Performance Analysis and Optimizations for Kafka Streams Applications (Guozha...
Performance Analysis and Optimizations for Kafka Streams Applications (Guozha...Performance Analysis and Optimizations for Kafka Streams Applications (Guozha...
Performance Analysis and Optimizations for Kafka Streams Applications (Guozha...
confluent
 

Similar to Kafka Streams at Scale (Deepak Goyal, Walmart Labs) Kafka Summit NYC 2019 (20)

Fisl - Deployment
Fisl - DeploymentFisl - Deployment
Fisl - Deployment
 
Deployment de Rails
Deployment de RailsDeployment de Rails
Deployment de Rails
 
Quarkus - a shrink ray to your Java Application
Quarkus - a shrink ray to your Java ApplicationQuarkus - a shrink ray to your Java Application
Quarkus - a shrink ray to your Java Application
 
Oreilly Webcast Jan 09, 2009
Oreilly Webcast Jan 09, 2009Oreilly Webcast Jan 09, 2009
Oreilly Webcast Jan 09, 2009
 
5 Takeaways from Migrating a Library to Scala 3 - Scala Love
5 Takeaways from Migrating a Library to Scala 3 - Scala Love5 Takeaways from Migrating a Library to Scala 3 - Scala Love
5 Takeaways from Migrating a Library to Scala 3 - Scala Love
 
A jar-nORM-ous Task
A jar-nORM-ous TaskA jar-nORM-ous Task
A jar-nORM-ous Task
 
(ARC311) Extreme Availability for Mission-Critical Applications | AWS re:Inve...
(ARC311) Extreme Availability for Mission-Critical Applications | AWS re:Inve...(ARC311) Extreme Availability for Mission-Critical Applications | AWS re:Inve...
(ARC311) Extreme Availability for Mission-Critical Applications | AWS re:Inve...
 
TorqueBox at DC:JBUG - November 2011
TorqueBox at DC:JBUG - November 2011TorqueBox at DC:JBUG - November 2011
TorqueBox at DC:JBUG - November 2011
 
MariaDB on Docker
MariaDB on DockerMariaDB on Docker
MariaDB on Docker
 
MySQL async message subscription platform
MySQL async message subscription platformMySQL async message subscription platform
MySQL async message subscription platform
 
Running database infrastructure on containers
Running database infrastructure on containersRunning database infrastructure on containers
Running database infrastructure on containers
 
Netflix Global Applications - NoSQL Search Roadshow
Netflix Global Applications - NoSQL Search RoadshowNetflix Global Applications - NoSQL Search Roadshow
Netflix Global Applications - NoSQL Search Roadshow
 
We all need friends and Akka just found Kubernetes
We all need friends and Akka just found KubernetesWe all need friends and Akka just found Kubernetes
We all need friends and Akka just found Kubernetes
 
Running Kafka as a Native Binary Using GraalVM with Ozan Günalp
Running Kafka as a Native Binary Using GraalVM with Ozan GünalpRunning Kafka as a Native Binary Using GraalVM with Ozan Günalp
Running Kafka as a Native Binary Using GraalVM with Ozan Günalp
 
Running your Java EE 6 applications in the Cloud (FISL 12)
Running your Java EE 6 applications in the Cloud (FISL 12)Running your Java EE 6 applications in the Cloud (FISL 12)
Running your Java EE 6 applications in the Cloud (FISL 12)
 
Akka and Kubernetes: Reactive From Code To Cloud
Akka and Kubernetes: Reactive From Code To CloudAkka and Kubernetes: Reactive From Code To Cloud
Akka and Kubernetes: Reactive From Code To Cloud
 
Performance Analysis and Optimizations for Kafka Streams Applications (Guozha...
Performance Analysis and Optimizations for Kafka Streams Applications (Guozha...Performance Analysis and Optimizations for Kafka Streams Applications (Guozha...
Performance Analysis and Optimizations for Kafka Streams Applications (Guozha...
 
Performance Analysis and Optimizations for Kafka Streams Applications
Performance Analysis and Optimizations for Kafka Streams ApplicationsPerformance Analysis and Optimizations for Kafka Streams Applications
Performance Analysis and Optimizations for Kafka Streams Applications
 
Spring into rails
Spring into railsSpring into rails
Spring into rails
 
Migrating to Multi Cluster Managed Kafka - ApacheKafkaIL
Migrating to Multi Cluster Managed Kafka - ApacheKafkaILMigrating to Multi Cluster Managed Kafka - ApacheKafkaIL
Migrating to Multi Cluster Managed Kafka - ApacheKafkaIL
 

More from confluent

More from confluent (20)

Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Santander Stream Processing with Apache Flink
Santander Stream Processing with Apache FlinkSantander Stream Processing with Apache Flink
Santander Stream Processing with Apache Flink
 
Unlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsUnlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insights
 
Workshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con FlinkWorkshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con Flink
 
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
 
AWS Immersion Day Mapfre - Confluent
AWS Immersion Day Mapfre   -   ConfluentAWS Immersion Day Mapfre   -   Confluent
AWS Immersion Day Mapfre - Confluent
 
Eventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalkEventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalk
 
Q&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent CloudQ&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent Cloud
 
Citi TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep DiveCiti TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep Dive
 
Build real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with ConfluentBuild real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with Confluent
 
Q&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service MeshQ&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service Mesh
 
Citi Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka MicroservicesCiti Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka Microservices
 
Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3
 
Citi Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging ModernizationCiti Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging Modernization
 
Citi Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time dataCiti Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time data
 
Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2
 
Data In Motion Paris 2023
Data In Motion Paris 2023Data In Motion Paris 2023
Data In Motion Paris 2023
 
Confluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with SynthesisConfluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with Synthesis
 
The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023
 
The Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data StreamsThe Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data Streams
 

Recently uploaded

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Recently uploaded (20)

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 

Kafka Streams at Scale (Deepak Goyal, Walmart Labs) Kafka Summit NYC 2019

Editor's Notes

  1. Interactions (search, page views, item clicks etc.) Transaction, Profile changes. Each event tells a story about the customer, what he/she likes, dislikes, gonna buy. Needed a platform capable of processing this event volume and store the knowledge/state of all the Walmart’s online customers.
  2. Alternatives: Flink, Spark Streaming, Dynomite Kafka streams seemed to be the only obvious choice (library, scalable, fault tolerable, exactly once semantics) But at Walmart’s Scale, even Kafka Streams came with its own bag of challenges. Self Introduction Forked over an year ago, made more than 100 commits to improve its scalability, fault-tolerance, performance and add more features to it. “Distributed DB” But………
  3. Slow Fault Recovery Scalability: Limited to number of partitions (one on one mapping to input topics) Cloud management and maintenance Rocks Java: Limitations of usage Rocks DB Store Large Clusters: Long rebalance time.
  4. Single process with embedded RocksDB and akka server to serve keys from DB.
  5. N partitions App partition zero maps to kafka topic’s zero’th partition No apostrophe -> Active One apostrophe -> Stand-by Each broker can hold multiple partitions Each app instance can hold multiple tasks Recovers from Change-log topic
  6. Replays entire change-log Recovery time proportional to amount of data in change-log topics
  7. 100Gbs connection, 100GB data, 8 seconds Unwindowed stores yet windowed changelog topics Lose exactly-once semantics in cross DC boot straps JSch for file transfer
  8. One on one mapping with input topic. 100 partitions means 100 Actives and 100 Standby Tasks. Lookups
  9. Happens as a part of restoration phase. Background threads cleaning unrequired key-value pairs.
  10. Multiplying serving throughput Notes: A slide for partition specific lookups.
  11. Availability zones / Racks going down or under maintanance
  12. Adding RACK_ID_CONFIG to Subscription Info and implementing StickyTaskAssignor
  13. We always expect a few instances to go down. If so rebalance. But if entire AZ goes down, don’t rebalance. Only if above threshold, then do reassignment on rebalance.
  14. Replacing with Akka Server did not help as long as Gets were synchronized. Talk about locking with state changes of rocksDB Serving Downtime to potentially zero.
  15. acks( producer) = all linger.ms (producer) = as required but >0 auto.offet.rest(consumer) = earliest retries (streams) = infinite state.cleanup.delay.ms (streams) = sufficiently large
  16. We never lose state for any customer. Potentially zero serving down-time Going towards zero processing down-time Streaming Engine and Distributed NoSQL DB with exactly once Semantics, high lookup and processing throughput