SlideShare a Scribd company logo
1 of 50
Download to read offline
FROM TO
with a 100x perf. boost!
BY ITAMAR RAVID | MAY 3, 2016
t
AGENDA
WE’LL TALK ABOUT…
• What we do, our challenges and what led us to Scala and Akka;
• How we redesigned our core data processing service;
• Some useful lessons and patterns.
There will be relatively little node.js bashing. Promise.
t
BIGPANDA: THE ANSWER TO ALERT FATIGUE
RABBIT IS DOWN!
NO FREE SPACE!
INBOUND QUEUE OVERFLOWING!
OUTBOUND QUEUE OVERFLOWING!
APPLICATION HEALTH CRITICAL!
TOO MANY FAILED HTTP REQS!
rabbit-1, ping
rabbit-2, disk
queue-1, size
queue-2, size
app1, health
app2, 500 codes
RabbitMQ cluster
ping disk
RabbitMQ node 3
queue size queue size
API server
health failed reqs
CorrelationAlgorithm
t
Correlation
Stage
Normalization
Stage
IN TERMS OF STREAMS…
RABBIT IS DOWN!
NO FREE SPACE!
INBOUND QUEUE OVERFLOWING!
OUTBOUND QUEUE OVERFLOWING!
APPLICATION HEALTH CRITICAL!
TOO MANY FAILED HTTP REQS!
Nagios event source
Datadog event source
AppDynamics
event source
rabbit-1, ping
rabbit-2, disk
queue-1, size
queue-2, size
app1, health
app2, 500 codes
RabbitMQ cluster
ping disk
RabbitMQ node 3
queue size queue size
API server
health failed reqs
CorrelationAlgorithm
CHALLENGE 1
SCALING TO MEET CUSTOMER LOAD
t
HIGH-LEVEL ARCHITECTURE
API servers
API servers
API servers
Normalization Correlation
Correlation
Correlation
RabbitMQ
Exchange
Normalization
Normalization
RabbitMQ
Exchange
Mongo
RabbitMQ
Exchange
t
USAGE OF RABBITMQ
Correlation
Correlation
Correlation
RabbitMQ
Cons. Hash
Queue
(Customers A, B, C)
Queue
(Customers D, E, F)
Queue
(Customers X, Y, Z)
Route by
hash on
Customer
DATA FOR A GIVEN CUSTOMER MUST BE PROCESSED SERIALLY,
IN ORDER. SO…
t
(ALERT) STORMS
t
MEET REALITY!
Not fun!
A hiccup in a customer’s datacenter =>
An entire queue is blocked
CHALLENGE 2
CORRELATION PREVIEW
t
CORRELATION
Same host, 4 hours
…
MATCHING RULES
+
INCIDENT
rabbit-1
ping disk
rabbit-1, ping, t=5
rabbit-1, disk, t=7
t
CORRELATION
MATCHING RULES
+
INCIDENT
rabbit-1
ping disk
Same host, 4 hours
30 minutes
rabbit-1, ping, t=5
rabbit-1, disk, t=7
t
CORRELATION
MATCHING RULES
+
INCIDENT
rabbit-1, ping, t=5
rabbit-1, disk, t=7
Same host, 4 hours
30 minutes
?
t
A CORRELATION TIME-MACHINE
1 2 3 4 5 6 7 8 9 N…10
ALERTS WE’RE HERE
START FROM HERE
(DC OUTAGE)
Correlation
Servers
OFFSETS
t
THIS MEANS…
REPLAY DETERMINISTICFAST
SOLUTIONS!
t
EXISTING CORRELATION SOLUTION
Processing
Stage
Mongo
RabbitRabbit RabbitRabbit
Processing
Stage
Processing
Stage
PROCESSING STAGE - A NODE.JS CALLBACK.
Shared mutable
state
No isolation
No replay
t
DESIRED SOLUTION
Processing
Stage
RabbitRabbit
Processing
Stage
Mongo
Processing
Stage
t
NODE.JS - PLATFORM LIMITATIONS
HEAP SIZE - LIMITED TO 1.7GB
SINGLE THREADED :-(
TypeError: undefined is not a function
t
COMPONENTS
DURABLE EVENT STREAM
PLATFORM
COMPUTING FRAMEWORK
t
ACTOR-BASED SOLUTION
Node Manager
Customer A
Pipeline
Kafka
Reader
Algorithm
runner
Mongo
Writer
Rabbit
Writer
Customer B
Pipeline
Customer C
Pipeline
SUPERVISION
MESSAGING
customer_a_inputs
t
NEXT-GEN SOLUTION
Node Manager
Customer A
Pipeline
Kafka
Reader
Algorithm
runner
Mongo
Writer
Rabbit
Writer
Customer B
Pipeline
Customer C
Pipeline
SUPERVISION
MESSAGING
FAILURE
ISOLATION
customer_a_inputs
t
NEXT-GEN SOLUTION
Node Manager
Customer A
Pipeline
Kafka
Reader
Algorithm
runner
Mongo
Writer
Rabbit
Writer
Customer B
Pipeline
Customer C
Pipeline
SUPERVISION
MESSAGING
SEPARATE DISPATCHERS
FOR QOS-TUNING
customer_a_inputs
t
SCALING OUT
Node 1
Cluster
Manager
Node
Manager
Node 2
Node
Manager
Node 3
Node
Manager
LESSONS LEARNED
t
PRUNING AN INFINITE DATA STREAM
1 2 3 4 5 6 7 8 9 N…10
t
PRUNING AN INFINITE DATA STREAM
1 2 3 4 5 6 7 8 9 N…10
t=10, Critical t=8, OK
t
PRUNING AN INFINITE DATA STREAM
5 6 7 8 9 N…10
t=8, OK
MISSING
ALERTS :-(
PRUNING STREAMS THAT RESULT IN
STATE REQUIRES STATE RECOVERY.
t
PRUNING AN INFINITE DATA STREAM
5 6 7 8 9 N…10
Snapshot
Repository
<data …>
lastOffset: 4
<data …>
lastOffset: 8
<data …>
lastOffset: 10
ON BOOT, LATEST SNAPSHOT IS LOADED
AND STREAM IS SEEKED TO STORED OFFSET.
t
PRUNING AN INFINITE DATA STREAM
CHALLENGES:
- COMPACTNESS
- SCHEMA EVOLUTION
kryo/chill with a manual de/serializer <=> Map[String, Any]
Schema evolution support with some caveats
Big datasets are only a few MBs in size
USE SNAPSHOTS TO PRUNE STREAMS
JSON IS NOT THE ONLY SOLUTION!
KEY TAKEAWAYS
t
FAULT-TOLERANCE THROUGH BEHAVIORAL TRAITS
INPUTS
MSG BATCHES
Kafka
reader
Algorithm
Runner
Mongo
Writer
Rabbit
Writer
t
FAULT-TOLERANCE THROUGH BEHAVIORAL TRAITS
INPUTS
MSG BATCHES
1
PIPELINING BETWEEN STAGES
Kafka
reader
Algorithm
Runner
Mongo
Writer
Rabbit
Writer
t
FAULT-TOLERANCE THROUGH BEHAVIORAL TRAITS
INPUTS
MSG BATCHES
2 1
PIPELINING BETWEEN STAGES
Kafka
reader
Algorithm
Runner
Mongo
Writer
Rabbit
Writer
t
FAULT-TOLERANCE THROUGH BEHAVIORAL TRAITS
INPUTS
MSG BATCHES
3 2 1
PIPELINING BETWEEN STAGES
Kafka
reader
Algorithm
Runner
Mongo
Writer
Rabbit
Writer
t
FAULT-TOLERANCE THROUGH BEHAVIORAL TRAITS
Kafka
reader
Algorithm
Runner
Mongo
Writer
Rabbit
Writer
INPUTS
MSG BATCHES
3 2 1
PIPELINING BETWEEN STAGES
RETRYING
Persistent failure
will restart entire
pipeline
t
FAULT-TOLERANCE THROUGH BEHAVIORAL TRAITS
INPUTS
MSG BATCHES
4 3 2 1
PIPELINING BETWEEN STAGES
RETRYING
Kafka
reader
Algorithm
Runner
Mongo
Writer
Rabbit
Writer
t
FAULT-TOLERANCE THROUGH BEHAVIORAL TRAITS
INPUTS
MSG BATCHES
4 3 2 1
PIPELINING BETWEEN STAGES
RETRYING
Kafka
reader
Algorithm
Runner
Mongo
Writer
Rabbit
Writer
CAPTURE COMMON ACTOR
BEHAVIOR USING TRAITS
(BUT MAKE SURE THEY COMPOSE!)
KEY TAKEAWAYS
t
DEFERRING AND CONTROLLING STATE MUTATION
PREVIOUSLY:
Processing
Stage
Mongo
Processing
Stage
Processing
Stage
HERE BE RACE CONDITIONS!
t
DEFERRING AND CONTROLLING STATE MUTATION
Algorithm
runner
Mongo
Mongo
Writer
Instructions
AN INTERPRETER
t
DEFERRING STATE MUTATION
id1 id2 id1 id1 id2 id2 id1 id2 id1 id1 id2 id2
Mongo
get
set
OPTIMIZE ME!
t
FOLDING INSTRUCTIONS TO REDUCE I/O
id1 -> inst1 :: inst2 :: inst3 … :: Nil
id2 -> inst1 :: inst2 :: inst3 … :: Nil
Mongo
getMultiple setMultiple
foldLeft(initialObject)(processInstruction)
DECOUPLE STATE MUTATION FROM PROCESSING
OPTIMIZE STATE MUTATION WHEN INTERPRETING
KEY TAKEAWAYS
t
MEASURE!
Dropwizard Metrics + metrics-scala:
KEY TAKEAWAYS
INSTRUMENT AWAY!
t
FINAL NUMBERS AND BENEFITS
OVERALL RATE IMPROVMENT:
~ 16 events/s on a single node.js process at peak
1600-2500 events/s on a single pipeline at peak
ISOLATION
COMPLETE DETERMINISM
SCALABILITY
Actor-per-Customer; failure isolation
More nodes => more actors; reduced I/O
Actions determined entirely by Kafka contents;
amazing for debugging!
Q&A
WE’RE HIRING!
iravid@bigpanda.io
t
GROCERY LIST
RabbitMQ - op-rabbit
MongoDB - reactivemongo
Kafka - kafka-clients
Zookeeper - curator
Dependency Injection - scaldi
Logging - log4j2, scala-logging, raven-log4j2
Metrics - Dropwizard Metrics, metrics-scala
Config - Typesafe Config
JSON - play-json
Binary serde - kryo/chill

More Related Content

What's hot

Security testing with gauntlt
Security testing with gauntltSecurity testing with gauntlt
Security testing with gauntltJames Wickett
 
走向开源:提交CPAN模块Step by Step
走向开源:提交CPAN模块Step by Step走向开源:提交CPAN模块Step by Step
走向开源:提交CPAN模块Step by Steppluschen
 
Traitement temps réel chez Streamroot - Golang Paris Juin 2016
Traitement temps réel chez Streamroot - Golang Paris Juin 2016Traitement temps réel chez Streamroot - Golang Paris Juin 2016
Traitement temps réel chez Streamroot - Golang Paris Juin 2016Simon Caplette
 
DOD 2016 - Kamil Szczygieł - Patching 100 OpenStack Compute Nodes with Zero-d...
DOD 2016 - Kamil Szczygieł - Patching 100 OpenStack Compute Nodes with Zero-d...DOD 2016 - Kamil Szczygieł - Patching 100 OpenStack Compute Nodes with Zero-d...
DOD 2016 - Kamil Szczygieł - Patching 100 OpenStack Compute Nodes with Zero-d...PROIDEA
 
Nmap 9 truth "Nothing to say any more"
Nmap 9 truth "Nothing to say  any more"Nmap 9 truth "Nothing to say  any more"
Nmap 9 truth "Nothing to say any more"abend_cve_9999_0001
 
Flare and TensorFlare: Native Compilation for Spark and TensorFlow Pipelines ...
Flare and TensorFlare: Native Compilation for Spark and TensorFlow Pipelines ...Flare and TensorFlare: Native Compilation for Spark and TensorFlow Pipelines ...
Flare and TensorFlare: Native Compilation for Spark and TensorFlow Pipelines ...Databricks
 
nextcomputing-cyberpro
nextcomputing-cyberpronextcomputing-cyberpro
nextcomputing-cyberproblabadini
 
rtpengine and kamailio - or how to simulate calls at scale
rtpengine and kamailio - or how to simulate calls at scalertpengine and kamailio - or how to simulate calls at scale
rtpengine and kamailio - or how to simulate calls at scaleAndreas Granig
 
rtpengine - Media Relaying and Beyond
rtpengine - Media Relaying and Beyondrtpengine - Media Relaying and Beyond
rtpengine - Media Relaying and BeyondAndreas Granig
 
Jdd2014: High performance logging - Peter Lawrey
Jdd2014: High performance logging - Peter LawreyJdd2014: High performance logging - Peter Lawrey
Jdd2014: High performance logging - Peter LawreyPROIDEA
 

What's hot (13)

Security testing with gauntlt
Security testing with gauntltSecurity testing with gauntlt
Security testing with gauntlt
 
走向开源:提交CPAN模块Step by Step
走向开源:提交CPAN模块Step by Step走向开源:提交CPAN模块Step by Step
走向开源:提交CPAN模块Step by Step
 
Nsq meetup-messaging
Nsq meetup-messagingNsq meetup-messaging
Nsq meetup-messaging
 
Traitement temps réel chez Streamroot - Golang Paris Juin 2016
Traitement temps réel chez Streamroot - Golang Paris Juin 2016Traitement temps réel chez Streamroot - Golang Paris Juin 2016
Traitement temps réel chez Streamroot - Golang Paris Juin 2016
 
DOD 2016 - Kamil Szczygieł - Patching 100 OpenStack Compute Nodes with Zero-d...
DOD 2016 - Kamil Szczygieł - Patching 100 OpenStack Compute Nodes with Zero-d...DOD 2016 - Kamil Szczygieł - Patching 100 OpenStack Compute Nodes with Zero-d...
DOD 2016 - Kamil Szczygieł - Patching 100 OpenStack Compute Nodes with Zero-d...
 
Nmap 9 truth "Nothing to say any more"
Nmap 9 truth "Nothing to say  any more"Nmap 9 truth "Nothing to say  any more"
Nmap 9 truth "Nothing to say any more"
 
Flare and TensorFlare: Native Compilation for Spark and TensorFlow Pipelines ...
Flare and TensorFlare: Native Compilation for Spark and TensorFlow Pipelines ...Flare and TensorFlare: Native Compilation for Spark and TensorFlow Pipelines ...
Flare and TensorFlare: Native Compilation for Spark and TensorFlow Pipelines ...
 
nextcomputing-cyberpro
nextcomputing-cyberpronextcomputing-cyberpro
nextcomputing-cyberpro
 
rtpengine and kamailio - or how to simulate calls at scale
rtpengine and kamailio - or how to simulate calls at scalertpengine and kamailio - or how to simulate calls at scale
rtpengine and kamailio - or how to simulate calls at scale
 
Trash Robotic Router Platform
Trash Robotic Router PlatformTrash Robotic Router Platform
Trash Robotic Router Platform
 
Sipwise rtpengine
Sipwise rtpengineSipwise rtpengine
Sipwise rtpengine
 
rtpengine - Media Relaying and Beyond
rtpengine - Media Relaying and Beyondrtpengine - Media Relaying and Beyond
rtpengine - Media Relaying and Beyond
 
Jdd2014: High performance logging - Peter Lawrey
Jdd2014: High performance logging - Peter LawreyJdd2014: High performance logging - Peter Lawrey
Jdd2014: High performance logging - Peter Lawrey
 

Viewers also liked

Riski uzņēmumu IT nodrošināšanā. Situācijas anatomija.
Riski uzņēmumu IT nodrošināšanā. Situācijas anatomija.Riski uzņēmumu IT nodrošināšanā. Situācijas anatomija.
Riski uzņēmumu IT nodrošināšanā. Situācijas anatomija.HORTUS Digital
 
Proactively using social media throughout a crisis
Proactively using social media throughout a crisisProactively using social media throughout a crisis
Proactively using social media throughout a crisisStephen Thompson
 
After meniscus-repair - POSTSURGICAL MENISCAL REPAIR REHABILITATION PROTOCOL
After meniscus-repair - POSTSURGICAL MENISCAL REPAIR REHABILITATION PROTOCOLAfter meniscus-repair - POSTSURGICAL MENISCAL REPAIR REHABILITATION PROTOCOL
After meniscus-repair - POSTSURGICAL MENISCAL REPAIR REHABILITATION PROTOCOLpriyaakumarr
 
NH Medical Society 12.8.06 FINAL
NH Medical Society 12.8.06 FINALNH Medical Society 12.8.06 FINAL
NH Medical Society 12.8.06 FINALCarol Gray, MHA
 
10 ohiane unibertsoa
10 ohiane unibertsoa10 ohiane unibertsoa
10 ohiane unibertsoa3ZIKLO
 
โคลเบิร์ก
โคลเบิร์กโคลเบิร์ก
โคลเบิร์กfateemeenorm
 
Computers made easy
Computers made easyComputers made easy
Computers made easybielnuria
 
Common sense of backpack buckle 2 --smart industrial (asia) corporation limited
Common sense of backpack buckle 2 --smart industrial (asia) corporation limitedCommon sense of backpack buckle 2 --smart industrial (asia) corporation limited
Common sense of backpack buckle 2 --smart industrial (asia) corporation limitedEdward Young
 
Top 5 SCI - FI Movies
Top 5 SCI - FI MoviesTop 5 SCI - FI Movies
Top 5 SCI - FI MoviesViewLorium
 
Autonomic Nervous System - Nov 8
Autonomic Nervous System - Nov 8Autonomic Nervous System - Nov 8
Autonomic Nervous System - Nov 8Mitchell Thom
 
Retreat Follow Up 12-5-05
Retreat Follow Up 12-5-05 Retreat Follow Up 12-5-05
Retreat Follow Up 12-5-05 Carol Gray, MHA
 
Kuukausittainen matkailutilasto etela savo marraskuu 2015
Kuukausittainen matkailutilasto etela savo marraskuu 2015Kuukausittainen matkailutilasto etela savo marraskuu 2015
Kuukausittainen matkailutilasto etela savo marraskuu 2015Pellervo Kokkonen
 
Off The Vine - TV Series
Off The Vine - TV SeriesOff The Vine - TV Series
Off The Vine - TV SeriesViewLorium
 
Akhdiyat duta modjo
Akhdiyat duta modjoAkhdiyat duta modjo
Akhdiyat duta modjoGama Muazzam
 
Resume upto august 2016
Resume upto august 2016Resume upto august 2016
Resume upto august 2016Chandan Raj
 
this is the best you can get
this is the best you can getthis is the best you can get
this is the best you can getmikscott
 
Final Script Draft
Final Script DraftFinal Script Draft
Final Script Draftmaryashtona2
 

Viewers also liked (20)

Riski uzņēmumu IT nodrošināšanā. Situācijas anatomija.
Riski uzņēmumu IT nodrošināšanā. Situācijas anatomija.Riski uzņēmumu IT nodrošināšanā. Situācijas anatomija.
Riski uzņēmumu IT nodrošināšanā. Situācijas anatomija.
 
HM_CV_Word
HM_CV_WordHM_CV_Word
HM_CV_Word
 
Narayan Resume
Narayan ResumeNarayan Resume
Narayan Resume
 
Proactively using social media throughout a crisis
Proactively using social media throughout a crisisProactively using social media throughout a crisis
Proactively using social media throughout a crisis
 
After meniscus-repair - POSTSURGICAL MENISCAL REPAIR REHABILITATION PROTOCOL
After meniscus-repair - POSTSURGICAL MENISCAL REPAIR REHABILITATION PROTOCOLAfter meniscus-repair - POSTSURGICAL MENISCAL REPAIR REHABILITATION PROTOCOL
After meniscus-repair - POSTSURGICAL MENISCAL REPAIR REHABILITATION PROTOCOL
 
NH Medical Society 12.8.06 FINAL
NH Medical Society 12.8.06 FINALNH Medical Society 12.8.06 FINAL
NH Medical Society 12.8.06 FINAL
 
10 ohiane unibertsoa
10 ohiane unibertsoa10 ohiane unibertsoa
10 ohiane unibertsoa
 
โคลเบิร์ก
โคลเบิร์กโคลเบิร์ก
โคลเบิร์ก
 
Computers made easy
Computers made easyComputers made easy
Computers made easy
 
Common sense of backpack buckle 2 --smart industrial (asia) corporation limited
Common sense of backpack buckle 2 --smart industrial (asia) corporation limitedCommon sense of backpack buckle 2 --smart industrial (asia) corporation limited
Common sense of backpack buckle 2 --smart industrial (asia) corporation limited
 
Top 5 SCI - FI Movies
Top 5 SCI - FI MoviesTop 5 SCI - FI Movies
Top 5 SCI - FI Movies
 
Autonomic Nervous System - Nov 8
Autonomic Nervous System - Nov 8Autonomic Nervous System - Nov 8
Autonomic Nervous System - Nov 8
 
Retreat Follow Up 12-5-05
Retreat Follow Up 12-5-05 Retreat Follow Up 12-5-05
Retreat Follow Up 12-5-05
 
Kuukausittainen matkailutilasto etela savo marraskuu 2015
Kuukausittainen matkailutilasto etela savo marraskuu 2015Kuukausittainen matkailutilasto etela savo marraskuu 2015
Kuukausittainen matkailutilasto etela savo marraskuu 2015
 
Off The Vine - TV Series
Off The Vine - TV SeriesOff The Vine - TV Series
Off The Vine - TV Series
 
Akhdiyat duta modjo
Akhdiyat duta modjoAkhdiyat duta modjo
Akhdiyat duta modjo
 
Resume upto august 2016
Resume upto august 2016Resume upto august 2016
Resume upto august 2016
 
this is the best you can get
this is the best you can getthis is the best you can get
this is the best you can get
 
Final Script Draft
Final Script DraftFinal Script Draft
Final Script Draft
 
Hungarytruefalse
HungarytruefalseHungarytruefalse
Hungarytruefalse
 

Similar to From node.js to Scala - with a 100x performance boost

FPGA based 10G Performance Tester for HW OpenFlow Switch
FPGA based 10G Performance Tester for HW OpenFlow SwitchFPGA based 10G Performance Tester for HW OpenFlow Switch
FPGA based 10G Performance Tester for HW OpenFlow SwitchYutaka Yasuda
 
XMPP & AMQP
XMPP & AMQPXMPP & AMQP
XMPP & AMQPvoluntas
 
Atlanta Spark User Meetup 09 22 2016
Atlanta Spark User Meetup 09 22 2016Atlanta Spark User Meetup 09 22 2016
Atlanta Spark User Meetup 09 22 2016Chris Fregly
 
Introducing Exactly Once Semantics To Apache Kafka
Introducing Exactly Once Semantics To Apache KafkaIntroducing Exactly Once Semantics To Apache Kafka
Introducing Exactly Once Semantics To Apache KafkaApurva Mehta
 
Kafka Summit NYC 2017 - Introducing Exactly Once Semantics in Apache Kafka
Kafka Summit NYC 2017 - Introducing Exactly Once Semantics in Apache KafkaKafka Summit NYC 2017 - Introducing Exactly Once Semantics in Apache Kafka
Kafka Summit NYC 2017 - Introducing Exactly Once Semantics in Apache Kafkaconfluent
 
Reactor, Reactive streams and MicroServices
Reactor, Reactive streams and MicroServicesReactor, Reactive streams and MicroServices
Reactor, Reactive streams and MicroServicesStéphane Maldini
 
Essential ingredients for real time stream processing @Scale by Kartik pParam...
Essential ingredients for real time stream processing @Scale by Kartik pParam...Essential ingredients for real time stream processing @Scale by Kartik pParam...
Essential ingredients for real time stream processing @Scale by Kartik pParam...Big Data Spain
 
Hermes Reliable Replication Protocol - ASPLOS'20 Presentation
Hermes Reliable Replication Protocol -  ASPLOS'20 PresentationHermes Reliable Replication Protocol -  ASPLOS'20 Presentation
Hermes Reliable Replication Protocol - ASPLOS'20 PresentationAntonios Katsarakis
 
RabbitMQ with python and ruby RuPy 2009
RabbitMQ with python and ruby RuPy 2009RabbitMQ with python and ruby RuPy 2009
RabbitMQ with python and ruby RuPy 2009Paolo Negri
 
Essential Ingredients of Realtime Stream Processing @ Scale
Essential Ingredients of Realtime Stream Processing @ ScaleEssential Ingredients of Realtime Stream Processing @ Scale
Essential Ingredients of Realtime Stream Processing @ ScaleKartik Paramasivam
 
Stream processing in python with Apache Samza and Beam
Stream processing in python with Apache Samza and BeamStream processing in python with Apache Samza and Beam
Stream processing in python with Apache Samza and BeamHai Lu
 
Polyglot, fault-tolerant event-driven programming with kafka, kubernetes and ...
Polyglot, fault-tolerant event-driven programming with kafka, kubernetes and ...Polyglot, fault-tolerant event-driven programming with kafka, kubernetes and ...
Polyglot, fault-tolerant event-driven programming with kafka, kubernetes and ...Natan Silnitsky
 
Kafka Summit NYC 2017 - Running Hundreds of Kafka Clusters with 5 People
Kafka Summit NYC 2017 - Running Hundreds of Kafka Clusters with 5 PeopleKafka Summit NYC 2017 - Running Hundreds of Kafka Clusters with 5 People
Kafka Summit NYC 2017 - Running Hundreds of Kafka Clusters with 5 Peopleconfluent
 
Samza portable runner for beam
Samza portable runner for beamSamza portable runner for beam
Samza portable runner for beamHai Lu
 
Intelligent Handwriting Recognition_MIL_presentation_v3_final
Intelligent Handwriting Recognition_MIL_presentation_v3_finalIntelligent Handwriting Recognition_MIL_presentation_v3_final
Intelligent Handwriting Recognition_MIL_presentation_v3_finalSuhas Pillai
 
Exactly-once Semantics in Apache Kafka
Exactly-once Semantics in Apache KafkaExactly-once Semantics in Apache Kafka
Exactly-once Semantics in Apache Kafkaconfluent
 
Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...
Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...
Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...Paolo Negri
 

Similar to From node.js to Scala - with a 100x performance boost (20)

Samza la hug
Samza la hugSamza la hug
Samza la hug
 
FPGA based 10G Performance Tester for HW OpenFlow Switch
FPGA based 10G Performance Tester for HW OpenFlow SwitchFPGA based 10G Performance Tester for HW OpenFlow Switch
FPGA based 10G Performance Tester for HW OpenFlow Switch
 
XMPP & AMQP
XMPP & AMQPXMPP & AMQP
XMPP & AMQP
 
Atlanta Spark User Meetup 09 22 2016
Atlanta Spark User Meetup 09 22 2016Atlanta Spark User Meetup 09 22 2016
Atlanta Spark User Meetup 09 22 2016
 
Introducing Exactly Once Semantics To Apache Kafka
Introducing Exactly Once Semantics To Apache KafkaIntroducing Exactly Once Semantics To Apache Kafka
Introducing Exactly Once Semantics To Apache Kafka
 
Kafka Summit NYC 2017 - Introducing Exactly Once Semantics in Apache Kafka
Kafka Summit NYC 2017 - Introducing Exactly Once Semantics in Apache KafkaKafka Summit NYC 2017 - Introducing Exactly Once Semantics in Apache Kafka
Kafka Summit NYC 2017 - Introducing Exactly Once Semantics in Apache Kafka
 
Reactor, Reactive streams and MicroServices
Reactor, Reactive streams and MicroServicesReactor, Reactive streams and MicroServices
Reactor, Reactive streams and MicroServices
 
Essential ingredients for real time stream processing @Scale by Kartik pParam...
Essential ingredients for real time stream processing @Scale by Kartik pParam...Essential ingredients for real time stream processing @Scale by Kartik pParam...
Essential ingredients for real time stream processing @Scale by Kartik pParam...
 
Spark streaming + kafka 0.10
Spark streaming + kafka 0.10Spark streaming + kafka 0.10
Spark streaming + kafka 0.10
 
Hermes Reliable Replication Protocol - ASPLOS'20 Presentation
Hermes Reliable Replication Protocol -  ASPLOS'20 PresentationHermes Reliable Replication Protocol -  ASPLOS'20 Presentation
Hermes Reliable Replication Protocol - ASPLOS'20 Presentation
 
RabbitMQ with python and ruby RuPy 2009
RabbitMQ with python and ruby RuPy 2009RabbitMQ with python and ruby RuPy 2009
RabbitMQ with python and ruby RuPy 2009
 
Essential Ingredients of Realtime Stream Processing @ Scale
Essential Ingredients of Realtime Stream Processing @ ScaleEssential Ingredients of Realtime Stream Processing @ Scale
Essential Ingredients of Realtime Stream Processing @ Scale
 
Stream processing in python with Apache Samza and Beam
Stream processing in python with Apache Samza and BeamStream processing in python with Apache Samza and Beam
Stream processing in python with Apache Samza and Beam
 
Polyglot, fault-tolerant event-driven programming with kafka, kubernetes and ...
Polyglot, fault-tolerant event-driven programming with kafka, kubernetes and ...Polyglot, fault-tolerant event-driven programming with kafka, kubernetes and ...
Polyglot, fault-tolerant event-driven programming with kafka, kubernetes and ...
 
Kafka Summit NYC 2017 - Running Hundreds of Kafka Clusters with 5 People
Kafka Summit NYC 2017 - Running Hundreds of Kafka Clusters with 5 PeopleKafka Summit NYC 2017 - Running Hundreds of Kafka Clusters with 5 People
Kafka Summit NYC 2017 - Running Hundreds of Kafka Clusters with 5 People
 
Samza portable runner for beam
Samza portable runner for beamSamza portable runner for beam
Samza portable runner for beam
 
Lecture6.pptx
Lecture6.pptxLecture6.pptx
Lecture6.pptx
 
Intelligent Handwriting Recognition_MIL_presentation_v3_final
Intelligent Handwriting Recognition_MIL_presentation_v3_finalIntelligent Handwriting Recognition_MIL_presentation_v3_final
Intelligent Handwriting Recognition_MIL_presentation_v3_final
 
Exactly-once Semantics in Apache Kafka
Exactly-once Semantics in Apache KafkaExactly-once Semantics in Apache Kafka
Exactly-once Semantics in Apache Kafka
 
Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...
Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...
Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...
 

Recently uploaded

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 MenDelhi Call girls
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
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 Nanonetsnaman860154
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 

Recently uploaded (20)

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
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
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
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 

From node.js to Scala - with a 100x performance boost