SlideShare a Scribd company logo
1 of 26
CONFIDENTIAL – Do Not DistributeRetail Core Technology
Storm in Retail Context
Catalog data processing using Kafka, Storm & Micro-services
Karthik Deivasigamani
@WalmartLabs
2CONFIDENTIAL – Do Not DistributeRetail Core Technology
Retail Brick & Mortar
3CONFIDENTIAL – Do Not DistributeRetail Core Technology
Product Catalog
• Normalization
• Taxonomy
• Product Matching
• Shelving
• Attributes
• Grouping
4CONFIDENTIAL – Do Not DistributeRetail Core Technology
Product Catalog
Normalization
• Attribute Normalization
• clothing_size, clothing_size_type,shoe_size, rug_size,
shirt_size,baby_clothing_size, ring_size, bed_size, pet_size,
pant_size, sock_size, eyewear_frame_size, serving_size,
table_size, waist_size…. => size
• Value Normalization
• e.l.f. cosmetics, e.l.f. Cosmetics, e.l.f, elf cosmetics, E.L.F. cosmetics, ELF
Cosmetics => elf Cosmetics
5CONFIDENTIAL – Do Not DistributeRetail Core Technology
Product Catalog
Taxonomy
Classification => Product Type Category => Shelves
6CONFIDENTIAL – Do Not DistributeRetail Core Technology
Product Catalog
Attributes
ProductTitle
Description
Brand
Color
Manufacturer
Model Number
Dimensions
7CONFIDENTIAL – Do Not DistributeRetail Core Technology
Product Catalog
Product Matching
• UPC, GTIN, PLU, ISBN
• Algorithms
8CONFIDENTIAL – Do Not DistributeRetail Core Technology
Product Catalog
Grouping
Variants
Bundles
9CONFIDENTIAL – Do Not DistributeRetail Core Technology
Sources for catalog
• Market place Seller
• Content Providers
• Suppliers
• Merchants
• Legacy Catalogs
Product Catalog
10CONFIDENTIAL – Do Not DistributeRetail Core Technology
Characteristics of ingestion pipeline
• Zero message loss
• Fault Tolerance
• Source based Priority Queue
• Scale to millions of product updates in an hour.
• Product updates in NRT
• Checkpoint at various stages
11CONFIDENTIAL – Do Not DistributeRetail Core Technology
Processing source data
12CONFIDENTIAL – Do Not DistributeRetail Core Technology
Processing source data
• Choice of language
• Teams operate independently
• Platform with pluggable services
Bolt
13CONFIDENTIAL – Do Not DistributeRetail Core Technology
Source Pipeline
Kafka
Spout
Validate
Persist
Normalization
Classification
Attribute Extraction
Matching
Source
Variant
Grouping
Validate
Persist
Publish
14CONFIDENTIAL – Do Not DistributeRetail Core Technology
Product Pipeline
Kafka
Spout
Validate
Merge
Shelve
Attribute Extraction
Product
Variant
Grouping
Validate
Persist
Publish
15CONFIDENTIAL – Do Not DistributeRetail Core Technology
Micro batched Grouping Pipeline
Kafka
Spout
Router
Bolt
Product Group
Emitter Bolt
Validate
Persist
Publish
Micro-
Batching
Bolt
Kafka Payload Sample:
{
“variant_product_id” : “1234”,
“product_group_id” : “ABC”
}
Field
Grouping
16CONFIDENTIAL – Do Not DistributeRetail Core Technology
Back Pressure
• Message loss
• Spout stops emitting
Knobs
• Spout parallelism
• kafka message fetch size
• max.spout.pending = max number of tuples that can be unacked at any given time
• Worker parallelism
• Bolt parallelism
17CONFIDENTIAL – Do Not DistributeRetail Core Technology
Failures
• Data Errors
• Services Timeout
• Service outage
• Fatal Errors
• Validations at various stages
• Async IO using RxJava, Hystrix, Retries
• Hystrix Circuit Breaker
• Failing Tuples
18CONFIDENTIAL – Do Not DistributeRetail Core Technology
Characteristics of ingestion pipeline
• Zero message loss
– Anchoring and Failing Tuple, maxOffsetBehind = Long.MAX_VALUE
• Product updates in NRT
• Priority Queue
– Partition based and topic based
• Scale to millions of product updates in an hour.
• Fault Tolerance
– Worker failures, Node failures are handled by storm
– Nimbus and Supervisors are stateless, fail-fast
• Checkpoint at various stages
19CONFIDENTIAL – Do Not DistributeRetail Core Technology
What we monitor
• Kafka Lag
• Bolt Capacity
• JVM – heap, threads
• Service SLA
• Acked and Failed Tuples
• Data Errors and System Errors
• OS Metrics
20CONFIDENTIAL – Do Not DistributeRetail Core Technology
Tools For Monitoring
• Kafkamon – Monitor lag in the pipeline
• Guano – Dump and restore ZK state
• Storm UI
• Elastic & Kibana – Async logging using log4j2, scribe
• Grafana to monitor service latency
• Druid for tracking and analytics
• FIT – Fault Injection Tool
21CONFIDENTIAL – Do Not DistributeRetail Core Technology
Storm Cluster – Product Catalog
2
Nimbus
7
Supervisor
320
Cores
2TB
Memory
35
Slots
14
Topologies
150M
Kafka
Messages
6481
Executors
360M
Network IO
Microservice
22CONFIDENTIAL – Do Not DistributeRetail Core Technology
Storm Cluster – Audit / Tracking
1
Nimbus
5
Supervisor
160
Cores
1TB
Memory
155
Slots
94
Topologies
1B+
Kafka
Messages
1396
Executors
23CONFIDENTIAL – Do Not DistributeRetail Core Technology
Holiday Season
• Few thousands sellers
• 100M+ seller SKU
• 6x traffic
• Upgraded to 1.0.2 – HA Nimbus, Improved performance, Improved backpressure handling
• Change detection
• Improved our monitoring, periodic fault injection
• Fast track / Priority Queue for top items
How we prepared
24CONFIDENTIAL – Do Not DistributeRetail Core Technology
Lessons learnt
• Things will fail
• Monitor everything
• Automation
• Scale is not a feature
• Storm works well with large payloads
• Logs don’t lie
• Micro services come at a cost
25CONFIDENTIAL – Do Not DistributeRetail Core Technology
Path ahead
• Stateful stream processing
• Storm 1.1.0
– Streaming SQL
– Druid integration
– PMML(Predictive Model Markup
Language) Support
26CONFIDENTIAL – Do Not DistributeRetail Core Technology
Team
Yes, we are hiring!
http://www.walmartlabs.com/jobs/

More Related Content

What's hot

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...confluent
 
Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...
Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...
Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...Amazon Web Services
 
Espresso Database Replication with Kafka, Tom Quiggle
Espresso Database Replication with Kafka, Tom QuiggleEspresso Database Replication with Kafka, Tom Quiggle
Espresso Database Replication with Kafka, Tom Quiggleconfluent
 
What's the time? ...and why? (Mattias Sax, Confluent) Kafka Summit SF 2019
What's the time? ...and why? (Mattias Sax, Confluent) Kafka Summit SF 2019What's the time? ...and why? (Mattias Sax, Confluent) Kafka Summit SF 2019
What's the time? ...and why? (Mattias Sax, Confluent) Kafka Summit SF 2019confluent
 
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...DataWorks Summit/Hadoop Summit
 
Apache Kafka 0.8 basic training - Verisign
Apache Kafka 0.8 basic training - VerisignApache Kafka 0.8 basic training - Verisign
Apache Kafka 0.8 basic training - VerisignMichael Noll
 
How to Lock Down Apache Kafka and Keep Your Streams Safe
How to Lock Down Apache Kafka and Keep Your Streams SafeHow to Lock Down Apache Kafka and Keep Your Streams Safe
How to Lock Down Apache Kafka and Keep Your Streams Safeconfluent
 
Capture the Streams of Database Changes
Capture the Streams of Database ChangesCapture the Streams of Database Changes
Capture the Streams of Database Changesconfluent
 
Flink forward-2017-netflix keystones-paas
Flink forward-2017-netflix keystones-paasFlink forward-2017-netflix keystones-paas
Flink forward-2017-netflix keystones-paasMonal Daxini
 
Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...
Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...
Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...Erik Onnen
 
Should you read Kafka as a stream or in batch? Should you even care? | Ido Na...
Should you read Kafka as a stream or in batch? Should you even care? | Ido Na...Should you read Kafka as a stream or in batch? Should you even care? | Ido Na...
Should you read Kafka as a stream or in batch? Should you even care? | Ido Na...HostedbyConfluent
 
Introduction to Kafka
Introduction to KafkaIntroduction to Kafka
Introduction to KafkaAkash Vacher
 
Scaling Redis Cluster Deployments for Genome Analysis (featuring LSU) - Terry...
Scaling Redis Cluster Deployments for Genome Analysis (featuring LSU) - Terry...Scaling Redis Cluster Deployments for Genome Analysis (featuring LSU) - Terry...
Scaling Redis Cluster Deployments for Genome Analysis (featuring LSU) - Terry...Redis Labs
 
Data pipeline with kafka
Data pipeline with kafkaData pipeline with kafka
Data pipeline with kafkaMole Wong
 
Streaming in Practice - Putting Apache Kafka in Production
Streaming in Practice - Putting Apache Kafka in ProductionStreaming in Practice - Putting Apache Kafka in Production
Streaming in Practice - Putting Apache Kafka in Productionconfluent
 
Exactly-once Stream Processing with Kafka Streams
Exactly-once Stream Processing with Kafka StreamsExactly-once Stream Processing with Kafka Streams
Exactly-once Stream Processing with Kafka StreamsGuozhang Wang
 
Achieving a 50% Reduction in Cross-AZ Network Costs from Kafka (Uday Sagar Si...
Achieving a 50% Reduction in Cross-AZ Network Costs from Kafka (Uday Sagar Si...Achieving a 50% Reduction in Cross-AZ Network Costs from Kafka (Uday Sagar Si...
Achieving a 50% Reduction in Cross-AZ Network Costs from Kafka (Uday Sagar Si...confluent
 

What's hot (20)

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...
 
Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...
Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...
Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...
 
Espresso Database Replication with Kafka, Tom Quiggle
Espresso Database Replication with Kafka, Tom QuiggleEspresso Database Replication with Kafka, Tom Quiggle
Espresso Database Replication with Kafka, Tom Quiggle
 
What's the time? ...and why? (Mattias Sax, Confluent) Kafka Summit SF 2019
What's the time? ...and why? (Mattias Sax, Confluent) Kafka Summit SF 2019What's the time? ...and why? (Mattias Sax, Confluent) Kafka Summit SF 2019
What's the time? ...and why? (Mattias Sax, Confluent) Kafka Summit SF 2019
 
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...
 
Apache Kafka 0.8 basic training - Verisign
Apache Kafka 0.8 basic training - VerisignApache Kafka 0.8 basic training - Verisign
Apache Kafka 0.8 basic training - Verisign
 
How to Lock Down Apache Kafka and Keep Your Streams Safe
How to Lock Down Apache Kafka and Keep Your Streams SafeHow to Lock Down Apache Kafka and Keep Your Streams Safe
How to Lock Down Apache Kafka and Keep Your Streams Safe
 
Capture the Streams of Database Changes
Capture the Streams of Database ChangesCapture the Streams of Database Changes
Capture the Streams of Database Changes
 
Apache Kafka at LinkedIn
Apache Kafka at LinkedInApache Kafka at LinkedIn
Apache Kafka at LinkedIn
 
kafka for db as postgres
kafka for db as postgreskafka for db as postgres
kafka for db as postgres
 
Flink forward-2017-netflix keystones-paas
Flink forward-2017-netflix keystones-paasFlink forward-2017-netflix keystones-paas
Flink forward-2017-netflix keystones-paas
 
Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...
Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...
Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...
 
Should you read Kafka as a stream or in batch? Should you even care? | Ido Na...
Should you read Kafka as a stream or in batch? Should you even care? | Ido Na...Should you read Kafka as a stream or in batch? Should you even care? | Ido Na...
Should you read Kafka as a stream or in batch? Should you even care? | Ido Na...
 
Introduction to Kafka
Introduction to KafkaIntroduction to Kafka
Introduction to Kafka
 
Scaling Redis Cluster Deployments for Genome Analysis (featuring LSU) - Terry...
Scaling Redis Cluster Deployments for Genome Analysis (featuring LSU) - Terry...Scaling Redis Cluster Deployments for Genome Analysis (featuring LSU) - Terry...
Scaling Redis Cluster Deployments for Genome Analysis (featuring LSU) - Terry...
 
Kafka - Linkedin's messaging backbone
Kafka - Linkedin's messaging backboneKafka - Linkedin's messaging backbone
Kafka - Linkedin's messaging backbone
 
Data pipeline with kafka
Data pipeline with kafkaData pipeline with kafka
Data pipeline with kafka
 
Streaming in Practice - Putting Apache Kafka in Production
Streaming in Practice - Putting Apache Kafka in ProductionStreaming in Practice - Putting Apache Kafka in Production
Streaming in Practice - Putting Apache Kafka in Production
 
Exactly-once Stream Processing with Kafka Streams
Exactly-once Stream Processing with Kafka StreamsExactly-once Stream Processing with Kafka Streams
Exactly-once Stream Processing with Kafka Streams
 
Achieving a 50% Reduction in Cross-AZ Network Costs from Kafka (Uday Sagar Si...
Achieving a 50% Reduction in Cross-AZ Network Costs from Kafka (Uday Sagar Si...Achieving a 50% Reduction in Cross-AZ Network Costs from Kafka (Uday Sagar Si...
Achieving a 50% Reduction in Cross-AZ Network Costs from Kafka (Uday Sagar Si...
 

Similar to Apache Storm In Retail Context

Building Event Streaming Architectures on Scylla and Kafka
Building Event Streaming Architectures on Scylla and KafkaBuilding Event Streaming Architectures on Scylla and Kafka
Building Event Streaming Architectures on Scylla and KafkaScyllaDB
 
Experience with Kafka & Storm
Experience with Kafka & StormExperience with Kafka & Storm
Experience with Kafka & StormOtto Mok
 
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
 
Managing Gas Well Operations with hand held computing
Managing Gas Well Operations with hand held computingManaging Gas Well Operations with hand held computing
Managing Gas Well Operations with hand held computingJack Shaffer
 
Scylla Summit 2022: Building Zeotap's Privacy Compliant Customer Data Platfor...
Scylla Summit 2022: Building Zeotap's Privacy Compliant Customer Data Platfor...Scylla Summit 2022: Building Zeotap's Privacy Compliant Customer Data Platfor...
Scylla Summit 2022: Building Zeotap's Privacy Compliant Customer Data Platfor...ScyllaDB
 
Agile infrastructure
Agile infrastructureAgile infrastructure
Agile infrastructureTarun Rajput
 
Apache Kafka® at Dropbox
Apache Kafka® at DropboxApache Kafka® at Dropbox
Apache Kafka® at Dropboxconfluent
 
Operationalizing Machine Learning—Managing Provenance from Raw Data to Predic...
Operationalizing Machine Learning—Managing Provenance from Raw Data to Predic...Operationalizing Machine Learning—Managing Provenance from Raw Data to Predic...
Operationalizing Machine Learning—Managing Provenance from Raw Data to Predic...Databricks
 
StackVelocity Overview
StackVelocity OverviewStackVelocity Overview
StackVelocity OverviewStackVelocity
 
Data Pipelines with Spark & DataStax Enterprise
Data Pipelines with Spark & DataStax EnterpriseData Pipelines with Spark & DataStax Enterprise
Data Pipelines with Spark & DataStax EnterpriseDataStax
 
Building Scalable Big Data Infrastructure Using Open Source Software Presenta...
Building Scalable Big Data Infrastructure Using Open Source Software Presenta...Building Scalable Big Data Infrastructure Using Open Source Software Presenta...
Building Scalable Big Data Infrastructure Using Open Source Software Presenta...ssuserd3a367
 
A Big Data Lake Based on Spark for BBVA Bank-(Oscar Mendez, STRATIO)
A Big Data Lake Based on Spark for BBVA Bank-(Oscar Mendez, STRATIO)A Big Data Lake Based on Spark for BBVA Bank-(Oscar Mendez, STRATIO)
A Big Data Lake Based on Spark for BBVA Bank-(Oscar Mendez, STRATIO)Spark Summit
 
Transitioning from Java to Scala for Spark - March 13, 2019
Transitioning from Java to Scala for Spark - March 13, 2019Transitioning from Java to Scala for Spark - March 13, 2019
Transitioning from Java to Scala for Spark - March 13, 2019Gravy Analytics
 
Lessons learned from embedding Cassandra in xPatterns
Lessons learned from embedding Cassandra in xPatternsLessons learned from embedding Cassandra in xPatterns
Lessons learned from embedding Cassandra in xPatternsClaudiu Barbura
 
Stream Processing in Action
Stream Processing in ActionStream Processing in Action
Stream Processing in ActionWSO2
 
Stream data from Apache Kafka for processing with Apache Apex
Stream data from Apache Kafka for processing with Apache ApexStream data from Apache Kafka for processing with Apache Apex
Stream data from Apache Kafka for processing with Apache ApexApache Apex
 
찾아가는 AWS 세미나(구로,가산,판교) - AWS 기반 빅데이터 활용 방법 (김일호 솔루션즈 아키텍트)
찾아가는 AWS 세미나(구로,가산,판교) - AWS 기반 빅데이터 활용 방법 (김일호 솔루션즈 아키텍트)찾아가는 AWS 세미나(구로,가산,판교) - AWS 기반 빅데이터 활용 방법 (김일호 솔루션즈 아키텍트)
찾아가는 AWS 세미나(구로,가산,판교) - AWS 기반 빅데이터 활용 방법 (김일호 솔루션즈 아키텍트)Amazon Web Services Korea
 
Using Metrics for Fun, Developing with the KV Store + Javascript & News from ...
Using Metrics for Fun, Developing with the KV Store + Javascript & News from ...Using Metrics for Fun, Developing with the KV Store + Javascript & News from ...
Using Metrics for Fun, Developing with the KV Store + Javascript & News from ...Harry McLaren
 
Streaming Analytics with Spark, Kafka, Cassandra and Akka
Streaming Analytics with Spark, Kafka, Cassandra and AkkaStreaming Analytics with Spark, Kafka, Cassandra and Akka
Streaming Analytics with Spark, Kafka, Cassandra and AkkaHelena Edelson
 

Similar to Apache Storm In Retail Context (20)

Building Event Streaming Architectures on Scylla and Kafka
Building Event Streaming Architectures on Scylla and KafkaBuilding Event Streaming Architectures on Scylla and Kafka
Building Event Streaming Architectures on Scylla and Kafka
 
Experience with Kafka & Storm
Experience with Kafka & StormExperience with Kafka & Storm
Experience with Kafka & Storm
 
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...
 
Managing Gas Well Operations with hand held computing
Managing Gas Well Operations with hand held computingManaging Gas Well Operations with hand held computing
Managing Gas Well Operations with hand held computing
 
Scylla Summit 2022: Building Zeotap's Privacy Compliant Customer Data Platfor...
Scylla Summit 2022: Building Zeotap's Privacy Compliant Customer Data Platfor...Scylla Summit 2022: Building Zeotap's Privacy Compliant Customer Data Platfor...
Scylla Summit 2022: Building Zeotap's Privacy Compliant Customer Data Platfor...
 
Agile infrastructure
Agile infrastructureAgile infrastructure
Agile infrastructure
 
Apache Kafka® at Dropbox
Apache Kafka® at DropboxApache Kafka® at Dropbox
Apache Kafka® at Dropbox
 
Operationalizing Machine Learning—Managing Provenance from Raw Data to Predic...
Operationalizing Machine Learning—Managing Provenance from Raw Data to Predic...Operationalizing Machine Learning—Managing Provenance from Raw Data to Predic...
Operationalizing Machine Learning—Managing Provenance from Raw Data to Predic...
 
Reliability at scale
Reliability at scale Reliability at scale
Reliability at scale
 
StackVelocity Overview
StackVelocity OverviewStackVelocity Overview
StackVelocity Overview
 
Data Pipelines with Spark & DataStax Enterprise
Data Pipelines with Spark & DataStax EnterpriseData Pipelines with Spark & DataStax Enterprise
Data Pipelines with Spark & DataStax Enterprise
 
Building Scalable Big Data Infrastructure Using Open Source Software Presenta...
Building Scalable Big Data Infrastructure Using Open Source Software Presenta...Building Scalable Big Data Infrastructure Using Open Source Software Presenta...
Building Scalable Big Data Infrastructure Using Open Source Software Presenta...
 
A Big Data Lake Based on Spark for BBVA Bank-(Oscar Mendez, STRATIO)
A Big Data Lake Based on Spark for BBVA Bank-(Oscar Mendez, STRATIO)A Big Data Lake Based on Spark for BBVA Bank-(Oscar Mendez, STRATIO)
A Big Data Lake Based on Spark for BBVA Bank-(Oscar Mendez, STRATIO)
 
Transitioning from Java to Scala for Spark - March 13, 2019
Transitioning from Java to Scala for Spark - March 13, 2019Transitioning from Java to Scala for Spark - March 13, 2019
Transitioning from Java to Scala for Spark - March 13, 2019
 
Lessons learned from embedding Cassandra in xPatterns
Lessons learned from embedding Cassandra in xPatternsLessons learned from embedding Cassandra in xPatterns
Lessons learned from embedding Cassandra in xPatterns
 
Stream Processing in Action
Stream Processing in ActionStream Processing in Action
Stream Processing in Action
 
Stream data from Apache Kafka for processing with Apache Apex
Stream data from Apache Kafka for processing with Apache ApexStream data from Apache Kafka for processing with Apache Apex
Stream data from Apache Kafka for processing with Apache Apex
 
찾아가는 AWS 세미나(구로,가산,판교) - AWS 기반 빅데이터 활용 방법 (김일호 솔루션즈 아키텍트)
찾아가는 AWS 세미나(구로,가산,판교) - AWS 기반 빅데이터 활용 방법 (김일호 솔루션즈 아키텍트)찾아가는 AWS 세미나(구로,가산,판교) - AWS 기반 빅데이터 활용 방법 (김일호 솔루션즈 아키텍트)
찾아가는 AWS 세미나(구로,가산,판교) - AWS 기반 빅데이터 활용 방법 (김일호 솔루션즈 아키텍트)
 
Using Metrics for Fun, Developing with the KV Store + Javascript & News from ...
Using Metrics for Fun, Developing with the KV Store + Javascript & News from ...Using Metrics for Fun, Developing with the KV Store + Javascript & News from ...
Using Metrics for Fun, Developing with the KV Store + Javascript & News from ...
 
Streaming Analytics with Spark, Kafka, Cassandra and Akka
Streaming Analytics with Spark, Kafka, Cassandra and AkkaStreaming Analytics with Spark, Kafka, Cassandra and Akka
Streaming Analytics with Spark, Kafka, Cassandra and Akka
 

Recently uploaded

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
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
 
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
 
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
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
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 WorkerThousandEyes
 
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
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
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
 
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
 
"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
 
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 Takeoffsammart93
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 

Recently uploaded (20)

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
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
 
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...
 
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
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
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
 
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
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
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
 
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 ...
 
"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 ...
 
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
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 

Apache Storm In Retail Context

  • 1. CONFIDENTIAL – Do Not DistributeRetail Core Technology Storm in Retail Context Catalog data processing using Kafka, Storm & Micro-services Karthik Deivasigamani @WalmartLabs
  • 2. 2CONFIDENTIAL – Do Not DistributeRetail Core Technology Retail Brick & Mortar
  • 3. 3CONFIDENTIAL – Do Not DistributeRetail Core Technology Product Catalog • Normalization • Taxonomy • Product Matching • Shelving • Attributes • Grouping
  • 4. 4CONFIDENTIAL – Do Not DistributeRetail Core Technology Product Catalog Normalization • Attribute Normalization • clothing_size, clothing_size_type,shoe_size, rug_size, shirt_size,baby_clothing_size, ring_size, bed_size, pet_size, pant_size, sock_size, eyewear_frame_size, serving_size, table_size, waist_size…. => size • Value Normalization • e.l.f. cosmetics, e.l.f. Cosmetics, e.l.f, elf cosmetics, E.L.F. cosmetics, ELF Cosmetics => elf Cosmetics
  • 5. 5CONFIDENTIAL – Do Not DistributeRetail Core Technology Product Catalog Taxonomy Classification => Product Type Category => Shelves
  • 6. 6CONFIDENTIAL – Do Not DistributeRetail Core Technology Product Catalog Attributes ProductTitle Description Brand Color Manufacturer Model Number Dimensions
  • 7. 7CONFIDENTIAL – Do Not DistributeRetail Core Technology Product Catalog Product Matching • UPC, GTIN, PLU, ISBN • Algorithms
  • 8. 8CONFIDENTIAL – Do Not DistributeRetail Core Technology Product Catalog Grouping Variants Bundles
  • 9. 9CONFIDENTIAL – Do Not DistributeRetail Core Technology Sources for catalog • Market place Seller • Content Providers • Suppliers • Merchants • Legacy Catalogs Product Catalog
  • 10. 10CONFIDENTIAL – Do Not DistributeRetail Core Technology Characteristics of ingestion pipeline • Zero message loss • Fault Tolerance • Source based Priority Queue • Scale to millions of product updates in an hour. • Product updates in NRT • Checkpoint at various stages
  • 11. 11CONFIDENTIAL – Do Not DistributeRetail Core Technology Processing source data
  • 12. 12CONFIDENTIAL – Do Not DistributeRetail Core Technology Processing source data • Choice of language • Teams operate independently • Platform with pluggable services Bolt
  • 13. 13CONFIDENTIAL – Do Not DistributeRetail Core Technology Source Pipeline Kafka Spout Validate Persist Normalization Classification Attribute Extraction Matching Source Variant Grouping Validate Persist Publish
  • 14. 14CONFIDENTIAL – Do Not DistributeRetail Core Technology Product Pipeline Kafka Spout Validate Merge Shelve Attribute Extraction Product Variant Grouping Validate Persist Publish
  • 15. 15CONFIDENTIAL – Do Not DistributeRetail Core Technology Micro batched Grouping Pipeline Kafka Spout Router Bolt Product Group Emitter Bolt Validate Persist Publish Micro- Batching Bolt Kafka Payload Sample: { “variant_product_id” : “1234”, “product_group_id” : “ABC” } Field Grouping
  • 16. 16CONFIDENTIAL – Do Not DistributeRetail Core Technology Back Pressure • Message loss • Spout stops emitting Knobs • Spout parallelism • kafka message fetch size • max.spout.pending = max number of tuples that can be unacked at any given time • Worker parallelism • Bolt parallelism
  • 17. 17CONFIDENTIAL – Do Not DistributeRetail Core Technology Failures • Data Errors • Services Timeout • Service outage • Fatal Errors • Validations at various stages • Async IO using RxJava, Hystrix, Retries • Hystrix Circuit Breaker • Failing Tuples
  • 18. 18CONFIDENTIAL – Do Not DistributeRetail Core Technology Characteristics of ingestion pipeline • Zero message loss – Anchoring and Failing Tuple, maxOffsetBehind = Long.MAX_VALUE • Product updates in NRT • Priority Queue – Partition based and topic based • Scale to millions of product updates in an hour. • Fault Tolerance – Worker failures, Node failures are handled by storm – Nimbus and Supervisors are stateless, fail-fast • Checkpoint at various stages
  • 19. 19CONFIDENTIAL – Do Not DistributeRetail Core Technology What we monitor • Kafka Lag • Bolt Capacity • JVM – heap, threads • Service SLA • Acked and Failed Tuples • Data Errors and System Errors • OS Metrics
  • 20. 20CONFIDENTIAL – Do Not DistributeRetail Core Technology Tools For Monitoring • Kafkamon – Monitor lag in the pipeline • Guano – Dump and restore ZK state • Storm UI • Elastic & Kibana – Async logging using log4j2, scribe • Grafana to monitor service latency • Druid for tracking and analytics • FIT – Fault Injection Tool
  • 21. 21CONFIDENTIAL – Do Not DistributeRetail Core Technology Storm Cluster – Product Catalog 2 Nimbus 7 Supervisor 320 Cores 2TB Memory 35 Slots 14 Topologies 150M Kafka Messages 6481 Executors 360M Network IO Microservice
  • 22. 22CONFIDENTIAL – Do Not DistributeRetail Core Technology Storm Cluster – Audit / Tracking 1 Nimbus 5 Supervisor 160 Cores 1TB Memory 155 Slots 94 Topologies 1B+ Kafka Messages 1396 Executors
  • 23. 23CONFIDENTIAL – Do Not DistributeRetail Core Technology Holiday Season • Few thousands sellers • 100M+ seller SKU • 6x traffic • Upgraded to 1.0.2 – HA Nimbus, Improved performance, Improved backpressure handling • Change detection • Improved our monitoring, periodic fault injection • Fast track / Priority Queue for top items How we prepared
  • 24. 24CONFIDENTIAL – Do Not DistributeRetail Core Technology Lessons learnt • Things will fail • Monitor everything • Automation • Scale is not a feature • Storm works well with large payloads • Logs don’t lie • Micro services come at a cost
  • 25. 25CONFIDENTIAL – Do Not DistributeRetail Core Technology Path ahead • Stateful stream processing • Storm 1.1.0 – Streaming SQL – Druid integration – PMML(Predictive Model Markup Language) Support
  • 26. 26CONFIDENTIAL – Do Not DistributeRetail Core Technology Team Yes, we are hiring! http://www.walmartlabs.com/jobs/