Analysis updated 2026-05-18
Process a high volume real-time event stream, like clicks or activity logs, as it arrives.
Replace an existing Apache Storm based stream processing setup with an improved architecture.
Study how a large-scale distributed stream processing engine is designed.
| apache/incubator-heron | huburt-hu/newbieguide | spockframework/spock | |
|---|---|---|---|
| Stars | 3,636 | 3,641 | 3,627 |
| Language | Java | Java | Java |
| Setup difficulty | hard | easy | easy |
| Complexity | 5/5 | 2/5 | 2/5 |
| Audience | data | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires Java 11, Python 3.6, and Bazel 6.0.0, plus a distributed infrastructure setup.
Heron is a system for processing large streams of real-time data. It was originally built by Twitter to handle the enormous volume of events their platform generates every second, things like tweets, clicks, and user activity that need to be processed and analyzed as they happen rather than in batches hours later. The project was eventually donated to the Apache Software Foundation, where it entered the incubator program, which is how open-source projects graduate into full Apache projects. The "incubator-heron" name reflects that stage of the process. Heron is positioned as an improvement over an earlier stream processing system called Apache Storm, which Twitter had also used before building Heron. The README describes it as having a wide array of architectural improvements over its predecessor, though the short README does not go into detail about what those improvements are. The full documentation lives on a separate website at heron.apache.org. To run Heron you need Java 11, Python 3.6, and a build tool called Bazel. The project communicates through mailing lists and a Slack workspace, and there was a regular meetup group in the San Francisco Bay Area. Academic papers and blog posts from Twitter about the original design are linked from the README for those who want to understand the technical rationale behind the system. The README for this repository is quite sparse and serves mainly as a pointer to external documentation rather than a self-contained guide.
An Apache incubator project from Twitter for processing huge streams of real-time data, like tweets and clicks, as they happen.
Mainly Java. The stack also includes Java, Python, Bazel.
Free to use, modify, and distribute, even commercially, as long as you include the original copyright and license notice.
Setup difficulty is rated hard, with roughly 1day+ to a first successful run.
Mainly data.
This repo across BitVibe Labs
Verify against the repo before relying on details.