SlideShare a Scribd company logo
Reactive and Parallel
Programming
Presents...
Enrico Pigozzi
Vito Ressa
Who is Agile Lab?
GO BIG (data) or GO HOME
Summary
• Concurrency problem
Recurrent issues
Handle concurrency
• Akka
Overview
How it works
Akka cluster
Expansions and use-cases
How we use Akka
• Demo time
Parallel and
concurrent
Programming
Ⓒ2016 Agile Lab S.r.l.
“We need to stop coding our concurrency
and just let our code run concurrently”
Shared/mutable state
• Threads (pool) usage to make code “faster” + synchronization features
(primitives, locks, defensive copies, etc.) to make it “safe”.
• We tend to create the problem first, and (don’t) fix it up later (N.B. no real
concurrency allowed)
Issues
• Threads
• expensive (startup, memory, context switching)
• limited (by OS)
• CPU Vs. Synchronus IO balance required
• optimizated usage requires non-blocking API (cumbersome to write and test)
• Design
• bottlenecks, race conditions, deadlocks
• traditional errors management approches (exceptions and error codes) don’t
translate well
• maintenance / refactoring costs can increase to a fairy high degree (and therefore
avoided)
Software Transactional Memory
• Turns memory heap in a transactional data set (Atomic, Consistent, Isolated)
• Based on Transactional References:
 Memory cells, holding an immutable value (separates identity from
value)
 Implement CAS (Compare-And-Swap) semantic (old value still availabe
after change)
 Can only be altered within a transaction
 Very fast (near constant time)
 Thread and iteration safe
Futures
future(a,b)futureB(a)
 Asynchronous values
 Composable functional abstraction
 Error propagation and recover allowed
 Callback on termination available
for {
a ← futureA()
b ← futureB(a)
c ← futureC(a,b)
} yield c
futureA()
Actors & Message passing
• Unit of code organization: “policy” separated from “logic”, incapsulate state,
behaviour, mailbox
• Weakly / Adaptive typed: achitectural flexibility enhanced (decupled design)
• Safe: one thing a time in isolated context (actor accessed by reference, interaction by
messages)
• Immutable structures/messages managed by actors in isolated/safe context
Finite State Machine
• Applied to actor: must be in one of the defined (in type system) state all the
time
• A data object can be attached to each state (M:N relation)
• A starting state (and eventually data) has to be defined
• Event insted of simple messages: provides current state info
• 'When/goto/stay' model: define actor reaction (partial function) to event
for a state
S1
S2
S3
S4S5
A
B A
A A
A
B
B
B
B
A,B = possible messages
S1,…S5 = States
Microservices
• Bounded Context: Each element of functionality into a separate service
• Fault tolerance
• Deployment independency
• DataStore independency
• Loose coupling
• Service Discovery
• Sync/async messaging between services
• Scalability
Akka
Ⓒ2016 Agile Lab S.r.l.
Overview
Event-driven systems
with
Actors
High Performance
Easy concurrency handling
Simple distribution
High flexibility
Resilience
Reactive Manifesto
http://www.reactivemanifesto.org/
Commercial Support
Strenghts
How it works?
• Actor as an essential code unit
• Messages for actors interaction
• Hierarchical organization
• Supervision Hierarchy
Actors Lifecycle
• Actor instance is hidden
• Actor restarting
transparent to other actors
• Mailbox bounded to the
incarnation
Messages
• Any kind of message but immutable!
• Hint: In scala use case classes and take advantage of
pattern matching (see next slide)
Tell or Ask
Mailbox
• Landing point for messages
• Bounded to the incarnation of the actor (not the instance!)
• Allows different configurations (FIFO, LIFO, custom priority, ...)
• A mailbox can be shared in case of balancing pools
MAILBOX STASH
unstash()
Behaviors
Message handling
Behaviors management
Akka
Cluster
Ⓒ2016 Agile Lab S.r.l.
Akka Cluster
Node A
Node B
Node C
Node D
Leader
CLUSTER
Cluster membership service
• Peer to peer
• Decentralized
• Fault tolerant
• No single point of failure
• No single point of bottleneck
A Node is identified by a tuple
hostname:port:uid
• Gossip Protocol
• Automatic failure detector
Failure detection
An implementation of The Phi Accrual Failure Detector
Failure Detector
input
Nodes heartbeats phi-value
Is a node unreachable or not?
Depends on a treshold
Extensions and
use-cases
Ⓒ2016 Agile Lab S.r.l.
Extensions
Community projects available at
http://akka.io/community/
• Akka persistence - http://doc.akka.io/docs/akka/current/scala/persistence.html
• Akka HTTP - http://doc.akka.io/docs/akka-stream-and-http-
experimental/current/scala/http/
• Akka Streams - http://doc.akka.io/docs/akka-stream-and-http-
experimental/current/scala/http/
• Akka Camel - http://doc.akka.io/docs/akka/current/scala/camel.html
• Akka FSM - http://doc.akka.io/docs/akka/current/scala/fsm.html
Use cases: GearPump
Ref: https://www.typesafe.com/resources/case-studies-and-stories/intels-gearpump-real-
time-streaming-engine-using-akka
• Real-time streaming engine
• Multiple stream datasources
• Need of HA, scalability, performance
• "Once at a time" transactional message processing
With 4 nodes GearPump can
process up to 11 million
messages per seconds with
an average latency of 17ms
(100 bytes messages)
Use cases: Paycasso
• Three-factor authentication platform
• High speed authentication is mandatory
• Scala, Akka and Cassandra at the core as a reactive stack
• Make use of Akka HTTP, Akka Persistence, Akka Cluster Sharding.
Ref: https://www.typesafe.com/resources/case-studies-and-stories/paycasso-conquers-
speed-gap-in-three-factor-authentications-with-reactive-stack
Use cases: SAMI
• Data broker in the cloud for IoT
• Need for reactiveness and resiliency
• Microservices-based platform with Akka
Akka
usages
• Actors dedicated to clients for each WebSocket.
• At the transformation layer, where data is
streamed into the system and normalized.
Ref: https://www.typesafe.com/resources/case-studies-and-stories/samsung-strategy-
and-innovation-center-executes-iot-vision-at-startup-speed-with-reactive-architecture
Other use cases
Interesting Discussion
http://stackoverflow.com/questions/4493001/good-use-case-for-akka
Online Gaming
Finance
Statistics
Betting
Social Media
Telecom
Web Media
How we use
Akka
Ⓒ2016 Agile Lab S.r.l.
Akka in Action with
Microservices
Mosaico RCS
Reverse Proxy
Akka
Srv1
Akka
Srv2
Akka
Srv3
Akka
Srv4
Akka
Srv5
Akka
Srv6
Mongo
DB
Mongo
DB
My
SQL
S3
Akka
Custering
Akka in Action with BigData
Wasp AgileLab
Akka
Custering
master
Producer
Guardian
Consumer
Gardian
API
Guardian
E
P
E
P
E
P
E
P
K
R
K
R
K
R
R
T
S
P
S
P
WS TCP
Legend:
EP: EndPoint DataIn
KR:KafkaRouter
SP: Spark Pipeline
RT: Real Time
WS: Web Socket API
DataIn
Control
Plane
Demo time...
Ⓒ2016 Agile Lab S.r.l.
We are
hiring...
Ⓒ2016 Agile Lab S.r.l.
paolo.platter@agilelab.it

More Related Content

PDF
Bringing Deep Learning into production
Paolo Platter
 
PDF
Massive Streaming Analytics with Spark Streaming
Paolo Platter
 
PDF
Query or Not to Query? Using Apache Spark Metrics to Highlight Potentially Pr...
Databricks
 
PDF
Consolidating MLOps at One of Europe’s Biggest Airports
Databricks
 
PDF
Model Monitoring at Scale with Apache Spark and Verta
Databricks
 
PPT
Sneaking Scala through the Back Door
Dianne Marsh
 
PPTX
20160609 nike techtalks reactive applications tools of the trade
shinolajla
 
PPTX
Distributed Data Quality - Technical Solutions for Organizational Scaling
Justin Cunningham
 
Bringing Deep Learning into production
Paolo Platter
 
Massive Streaming Analytics with Spark Streaming
Paolo Platter
 
Query or Not to Query? Using Apache Spark Metrics to Highlight Potentially Pr...
Databricks
 
Consolidating MLOps at One of Europe’s Biggest Airports
Databricks
 
Model Monitoring at Scale with Apache Spark and Verta
Databricks
 
Sneaking Scala through the Back Door
Dianne Marsh
 
20160609 nike techtalks reactive applications tools of the trade
shinolajla
 
Distributed Data Quality - Technical Solutions for Organizational Scaling
Justin Cunningham
 

What's hot (20)

PDF
AI at Scale
Adi Polak
 
PPTX
xPatterns - Spark Summit 2014
Claudiu Barbura
 
PDF
Strata San Jose 2016: Scalable Ensemble Learning with H2O
Sri Ambati
 
PDF
Understanding and Improving Code Generation
Databricks
 
PDF
Productionizing Machine Learning in Our Health and Wellness Marketplace
Databricks
 
PPTX
Rootconf 2017 - State of the Open Source monitoring landscape
NETWAYS
 
PDF
Splice Machine's use of Apache Spark and MLflow
Databricks
 
PDF
Best Practices for Engineering Production-Ready Software with Apache Spark
Databricks
 
PDF
Nordstrom's Event-Sourced Architecture and Kafka-as-a-Service | Adam Weyant a...
HostedbyConfluent
 
PDF
From Idea to Model: Productionizing Data Pipelines with Apache Airflow
Databricks
 
PPTX
Apache edgent
Soma Shekarchi
 
PDF
Productionizing Deep Reinforcement Learning with Spark and MLflow
Databricks
 
PPTX
Cloud powered search
Codecamp Romania
 
PDF
Automating Predictive Modeling at Zynga with PySpark and Pandas UDFs
Databricks
 
PPTX
Moving advanced analytics to your sql server databases
Enrico van de Laar
 
PDF
Monitoring Half a Million ML Models, IoT Streaming Data, and Automated Qualit...
Databricks
 
PDF
Librecon 2016 bilbao: kappa architecture IoT of the cars
Juantomás García Molina
 
PPTX
Building an intelligent big data application in 30 minutes
Claudiu Barbura
 
PDF
Intro stream processing.be meetup #1
Peter Vandenabeele
 
PDF
Taking Jupyter Notebooks and Apache Spark to the Next Level PixieDust with Da...
Databricks
 
AI at Scale
Adi Polak
 
xPatterns - Spark Summit 2014
Claudiu Barbura
 
Strata San Jose 2016: Scalable Ensemble Learning with H2O
Sri Ambati
 
Understanding and Improving Code Generation
Databricks
 
Productionizing Machine Learning in Our Health and Wellness Marketplace
Databricks
 
Rootconf 2017 - State of the Open Source monitoring landscape
NETWAYS
 
Splice Machine's use of Apache Spark and MLflow
Databricks
 
Best Practices for Engineering Production-Ready Software with Apache Spark
Databricks
 
Nordstrom's Event-Sourced Architecture and Kafka-as-a-Service | Adam Weyant a...
HostedbyConfluent
 
From Idea to Model: Productionizing Data Pipelines with Apache Airflow
Databricks
 
Apache edgent
Soma Shekarchi
 
Productionizing Deep Reinforcement Learning with Spark and MLflow
Databricks
 
Cloud powered search
Codecamp Romania
 
Automating Predictive Modeling at Zynga with PySpark and Pandas UDFs
Databricks
 
Moving advanced analytics to your sql server databases
Enrico van de Laar
 
Monitoring Half a Million ML Models, IoT Streaming Data, and Automated Qualit...
Databricks
 
Librecon 2016 bilbao: kappa architecture IoT of the cars
Juantomás García Molina
 
Building an intelligent big data application in 30 minutes
Claudiu Barbura
 
Intro stream processing.be meetup #1
Peter Vandenabeele
 
Taking Jupyter Notebooks and Apache Spark to the Next Level PixieDust with Da...
Databricks
 
Ad

Viewers also liked (15)

PDF
iBeacon - I vantaggi nel mondo retail
Emanuele Cucci
 
PDF
Agile Lab_BigData_Meetup
Paolo Platter
 
PPT
Big data & hadoop framework
Tu Pham
 
PDF
Scala Intro
Paolo Platter
 
PDF
Introduzione ai Big Data e alla scienza dei dati - Big Data
Vincenzo Manzoni
 
PDF
Big Data and Implications on Platform Architecture
Odinot Stanislas
 
PDF
R-IoT Retail IoT - Come le IoT influenzano il mercato del Retail
riot-markets
 
PDF
Introduzione ai Big Data e alla scienza dei dati
Vincenzo Manzoni
 
PDF
Apache Gearpump next-gen streaming engine
Tianlun Zhang
 
PDF
QCON 2015: Gearpump, Realtime Streaming on Akka
Sean Zhong
 
PDF
Real Time Big Data Framework
Red Hat India Pvt. Ltd.
 
PPTX
Analysis and Characterization of Devices and Protocol Stacks for the Internet...
Mauro Losciale
 
PPTX
Big Data & Smart Cities
Moutaz Haddara
 
PDF
Data Streaming Technology Overview
Dan Lynn
 
PPTX
File Format Benchmarks - Avro, JSON, ORC, & Parquet
Owen O'Malley
 
iBeacon - I vantaggi nel mondo retail
Emanuele Cucci
 
Agile Lab_BigData_Meetup
Paolo Platter
 
Big data & hadoop framework
Tu Pham
 
Scala Intro
Paolo Platter
 
Introduzione ai Big Data e alla scienza dei dati - Big Data
Vincenzo Manzoni
 
Big Data and Implications on Platform Architecture
Odinot Stanislas
 
R-IoT Retail IoT - Come le IoT influenzano il mercato del Retail
riot-markets
 
Introduzione ai Big Data e alla scienza dei dati
Vincenzo Manzoni
 
Apache Gearpump next-gen streaming engine
Tianlun Zhang
 
QCON 2015: Gearpump, Realtime Streaming on Akka
Sean Zhong
 
Real Time Big Data Framework
Red Hat India Pvt. Ltd.
 
Analysis and Characterization of Devices and Protocol Stacks for the Internet...
Mauro Losciale
 
Big Data & Smart Cities
Moutaz Haddara
 
Data Streaming Technology Overview
Dan Lynn
 
File Format Benchmarks - Avro, JSON, ORC, & Parquet
Owen O'Malley
 
Ad

Similar to Agile Lab_BigData_Meetup_AKKA (20)

ODP
Reactive programming with scala and akka
Knoldus Inc.
 
PDF
[PDF Download] Akka in Action 1st Edition Raymond Roestenburg fulll chapter
labliinagai
 
PDF
Actor model in F# and Akka.NET
Riccardo Terrell
 
PDF
Go Reactive: Event-Driven, Scalable, Resilient & Responsive Systems
Jonas Bonér
 
PDF
Akka in Action 1st Edition Raymond Roestenburg download pdf
himlalnunys
 
PDF
Building Stateful Microservices With Akka
Yaroslav Tkachenko
 
PDF
Functional Programming and Composing Actors
legendofklang
 
PDF
Actor-based concurrency in a modern Java Enterprise
Alexander Lukyanchikov
 
PDF
Introduction to Akka-Streams
dmantula
 
PDF
Recipes to develop a reactive and cloud-ready application using Scala and Akka
Codemotion
 
PDF
Akka (1)
Rahul Shukla
 
PDF
Introduction to Actor Model and Akka
Yung-Lin Ho
 
PDF
Building a Reactive System with Akka - Workshop @ O'Reilly SAConf NYC
Konrad Malawski
 
PPTX
Building Reactive System with Akka
Lam Nguyen
 
PDF
Sharing-akka-pub
Hendri Karisma
 
PDF
Akka A to Z: A Guide To The Industry’s Best Toolkit for Fast Data and Microse...
Lightbend
 
PDF
Take a Look at Akka+Java (English version)
GlobalLogic Ukraine
 
PDF
Actor model in .NET - Akka.NET
Konrad Dusza
 
PPTX
Designing distributed systems
Malisa Ncube
 
PDF
Reactive applications and Akka intro used in the Madrid Scala Meetup
Miguel Pastor
 
Reactive programming with scala and akka
Knoldus Inc.
 
[PDF Download] Akka in Action 1st Edition Raymond Roestenburg fulll chapter
labliinagai
 
Actor model in F# and Akka.NET
Riccardo Terrell
 
Go Reactive: Event-Driven, Scalable, Resilient & Responsive Systems
Jonas Bonér
 
Akka in Action 1st Edition Raymond Roestenburg download pdf
himlalnunys
 
Building Stateful Microservices With Akka
Yaroslav Tkachenko
 
Functional Programming and Composing Actors
legendofklang
 
Actor-based concurrency in a modern Java Enterprise
Alexander Lukyanchikov
 
Introduction to Akka-Streams
dmantula
 
Recipes to develop a reactive and cloud-ready application using Scala and Akka
Codemotion
 
Akka (1)
Rahul Shukla
 
Introduction to Actor Model and Akka
Yung-Lin Ho
 
Building a Reactive System with Akka - Workshop @ O'Reilly SAConf NYC
Konrad Malawski
 
Building Reactive System with Akka
Lam Nguyen
 
Sharing-akka-pub
Hendri Karisma
 
Akka A to Z: A Guide To The Industry’s Best Toolkit for Fast Data and Microse...
Lightbend
 
Take a Look at Akka+Java (English version)
GlobalLogic Ukraine
 
Actor model in .NET - Akka.NET
Konrad Dusza
 
Designing distributed systems
Malisa Ncube
 
Reactive applications and Akka intro used in the Madrid Scala Meetup
Miguel Pastor
 

More from Paolo Platter (8)

PPTX
Witboost Platform for decentralization of data management
Paolo Platter
 
PPTX
Platform Strategy for decentralization.pptx
Paolo Platter
 
PPTX
DAMA Norway - Computational Governance Model
Paolo Platter
 
PPTX
The role of Dremio in a data mesh architecture
Paolo Platter
 
PPTX
Data Mesh Implementation - a practical journey
Paolo Platter
 
PPTX
kafka simplicity and complexity
Paolo Platter
 
PDF
Wasp2 - IoT and Streaming Platform
Paolo Platter
 
PPTX
Meetup tensorframes
Paolo Platter
 
Witboost Platform for decentralization of data management
Paolo Platter
 
Platform Strategy for decentralization.pptx
Paolo Platter
 
DAMA Norway - Computational Governance Model
Paolo Platter
 
The role of Dremio in a data mesh architecture
Paolo Platter
 
Data Mesh Implementation - a practical journey
Paolo Platter
 
kafka simplicity and complexity
Paolo Platter
 
Wasp2 - IoT and Streaming Platform
Paolo Platter
 
Meetup tensorframes
Paolo Platter
 

Agile Lab_BigData_Meetup_AKKA

  • 2. Who is Agile Lab? GO BIG (data) or GO HOME
  • 3. Summary • Concurrency problem Recurrent issues Handle concurrency • Akka Overview How it works Akka cluster Expansions and use-cases How we use Akka • Demo time
  • 4. Parallel and concurrent Programming Ⓒ2016 Agile Lab S.r.l. “We need to stop coding our concurrency and just let our code run concurrently”
  • 5. Shared/mutable state • Threads (pool) usage to make code “faster” + synchronization features (primitives, locks, defensive copies, etc.) to make it “safe”. • We tend to create the problem first, and (don’t) fix it up later (N.B. no real concurrency allowed)
  • 6. Issues • Threads • expensive (startup, memory, context switching) • limited (by OS) • CPU Vs. Synchronus IO balance required • optimizated usage requires non-blocking API (cumbersome to write and test) • Design • bottlenecks, race conditions, deadlocks • traditional errors management approches (exceptions and error codes) don’t translate well • maintenance / refactoring costs can increase to a fairy high degree (and therefore avoided)
  • 7. Software Transactional Memory • Turns memory heap in a transactional data set (Atomic, Consistent, Isolated) • Based on Transactional References:  Memory cells, holding an immutable value (separates identity from value)  Implement CAS (Compare-And-Swap) semantic (old value still availabe after change)  Can only be altered within a transaction  Very fast (near constant time)  Thread and iteration safe
  • 8. Futures future(a,b)futureB(a)  Asynchronous values  Composable functional abstraction  Error propagation and recover allowed  Callback on termination available for { a ← futureA() b ← futureB(a) c ← futureC(a,b) } yield c futureA()
  • 9. Actors & Message passing • Unit of code organization: “policy” separated from “logic”, incapsulate state, behaviour, mailbox • Weakly / Adaptive typed: achitectural flexibility enhanced (decupled design) • Safe: one thing a time in isolated context (actor accessed by reference, interaction by messages) • Immutable structures/messages managed by actors in isolated/safe context
  • 10. Finite State Machine • Applied to actor: must be in one of the defined (in type system) state all the time • A data object can be attached to each state (M:N relation) • A starting state (and eventually data) has to be defined • Event insted of simple messages: provides current state info • 'When/goto/stay' model: define actor reaction (partial function) to event for a state S1 S2 S3 S4S5 A B A A A A B B B B A,B = possible messages S1,…S5 = States
  • 11. Microservices • Bounded Context: Each element of functionality into a separate service • Fault tolerance • Deployment independency • DataStore independency • Loose coupling • Service Discovery • Sync/async messaging between services • Scalability
  • 13. Overview Event-driven systems with Actors High Performance Easy concurrency handling Simple distribution High flexibility Resilience Reactive Manifesto http://www.reactivemanifesto.org/ Commercial Support
  • 15. How it works? • Actor as an essential code unit • Messages for actors interaction • Hierarchical organization • Supervision Hierarchy
  • 16. Actors Lifecycle • Actor instance is hidden • Actor restarting transparent to other actors • Mailbox bounded to the incarnation
  • 17. Messages • Any kind of message but immutable! • Hint: In scala use case classes and take advantage of pattern matching (see next slide) Tell or Ask
  • 18. Mailbox • Landing point for messages • Bounded to the incarnation of the actor (not the instance!) • Allows different configurations (FIFO, LIFO, custom priority, ...) • A mailbox can be shared in case of balancing pools MAILBOX STASH unstash()
  • 21. Akka Cluster Node A Node B Node C Node D Leader CLUSTER Cluster membership service • Peer to peer • Decentralized • Fault tolerant • No single point of failure • No single point of bottleneck A Node is identified by a tuple hostname:port:uid • Gossip Protocol • Automatic failure detector
  • 22. Failure detection An implementation of The Phi Accrual Failure Detector Failure Detector input Nodes heartbeats phi-value Is a node unreachable or not? Depends on a treshold
  • 24. Extensions Community projects available at http://akka.io/community/ • Akka persistence - http://doc.akka.io/docs/akka/current/scala/persistence.html • Akka HTTP - http://doc.akka.io/docs/akka-stream-and-http- experimental/current/scala/http/ • Akka Streams - http://doc.akka.io/docs/akka-stream-and-http- experimental/current/scala/http/ • Akka Camel - http://doc.akka.io/docs/akka/current/scala/camel.html • Akka FSM - http://doc.akka.io/docs/akka/current/scala/fsm.html
  • 25. Use cases: GearPump Ref: https://www.typesafe.com/resources/case-studies-and-stories/intels-gearpump-real- time-streaming-engine-using-akka • Real-time streaming engine • Multiple stream datasources • Need of HA, scalability, performance • "Once at a time" transactional message processing With 4 nodes GearPump can process up to 11 million messages per seconds with an average latency of 17ms (100 bytes messages)
  • 26. Use cases: Paycasso • Three-factor authentication platform • High speed authentication is mandatory • Scala, Akka and Cassandra at the core as a reactive stack • Make use of Akka HTTP, Akka Persistence, Akka Cluster Sharding. Ref: https://www.typesafe.com/resources/case-studies-and-stories/paycasso-conquers- speed-gap-in-three-factor-authentications-with-reactive-stack
  • 27. Use cases: SAMI • Data broker in the cloud for IoT • Need for reactiveness and resiliency • Microservices-based platform with Akka Akka usages • Actors dedicated to clients for each WebSocket. • At the transformation layer, where data is streamed into the system and normalized. Ref: https://www.typesafe.com/resources/case-studies-and-stories/samsung-strategy- and-innovation-center-executes-iot-vision-at-startup-speed-with-reactive-architecture
  • 28. Other use cases Interesting Discussion http://stackoverflow.com/questions/4493001/good-use-case-for-akka Online Gaming Finance Statistics Betting Social Media Telecom Web Media
  • 29. How we use Akka Ⓒ2016 Agile Lab S.r.l.
  • 30. Akka in Action with Microservices Mosaico RCS Reverse Proxy Akka Srv1 Akka Srv2 Akka Srv3 Akka Srv4 Akka Srv5 Akka Srv6 Mongo DB Mongo DB My SQL S3 Akka Custering
  • 31. Akka in Action with BigData Wasp AgileLab Akka Custering master Producer Guardian Consumer Gardian API Guardian E P E P E P E P K R K R K R R T S P S P WS TCP Legend: EP: EndPoint DataIn KR:KafkaRouter SP: Spark Pipeline RT: Real Time WS: Web Socket API DataIn Control Plane