2. What is Heron
• Streaming data processing engine
• Developed at Twitter to replace Storm
• Contributed to open source in 2016
2
3. Heron Design Goals
3
Efficiency
Reduce resource
consumption
Support for diverse
workloads
Throughput vs latency
sensitive
Support for multiple
semantics
At most once, At least
once, Effectively once
Native Multi-Language
Support
C++, Java, Python
Task Isolation
Ease of debug-ability/
isolation/profiling
Support for back
pressure
Topologies should be self
adjusting
Use of containers
Runs in schedulers -
Kubernetes & DCOS & many
more
Multi-level APIs
Procedural, Functional and
Declarative for diverse
applications
Diverse deployment models
Run as a service or pure library
4. Heron Design Highlights
4
High Throughput and Low
Latency
Performance sensitive
components written in C++
d
Isolation at all Levels
Ease of debugging/resource isolation/
profilingÑ
Extensible Stream Engine
Pluggable higher level API
Initial support for Storm API,
Apache Beam, etc
Multiple Processing Semantics
At most once, At least once and
Exactly once
ddd
5. Heron Terminology
5
Topology
Directed acyclic graph
vertices = computation, and
edges = streams of data tuples
Spouts
Sources of data tuples for the topology
Examples - Pulsar/Kafka/MySQL/Postgres
Bolts
Process incoming tuples, and emit
outgoing tuples
Examples - filtering/aggregation/join/
any function
,
%
14. Heron Groupings
14
01 02 03 04
Shuffle Grouping
Random distribution of tuples
Fields Grouping
Group tuples by a field or
multiple fields
All Grouping
Replicates tuples to all tasks
Global Grouping
Send the entire stream to one
task
/
.
-
,
15. Writing Heron Topologies
15
Procedural - Low Level API
Directly write your spouts
and bolts
Functional - Mid Level API
Use of maps, flat maps, transform,
windows
Declarative - SQL (coming)
Use of declarative language - specify
what you want, system will figure it
out.
,
%
18. Heron in Production @ Twitter
• Completely replaced Storm 3 years ago
• 3x reduction in cores and memory
• Significantly reduced operational overhead
• >10x reduction in production incidents
18