Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Machine Learning
  3. summingbird

summingbird

Apache-2.0Scalav0.11.0-RC1

A library for writing MapReduce programs that execute on distributed platforms like Storm and Scalding using Scala/Java collection-like syntax.

Visit WebsiteGitHubGitHub
2.1k stars256 forks0 contributors

What is summingbird?

Summingbird is a library that lets developers write MapReduce programs using Scala or Java collection-like syntax, which can then be executed on distributed platforms like Storm (for real-time processing) and Scalding (for batch processing). It solves the problem of maintaining separate codebases for batch and streaming data pipelines by providing a unified API.

Target Audience

Data engineers and Scala/Java developers building large-scale, fault-tolerant data processing systems that require both batch and real-time capabilities.

Value Proposition

Developers choose Summingbird because it abstracts away the complexities of distributed platforms, allows code reuse across batch and streaming contexts, and provides strong fault-tolerance guarantees through its hybrid execution mode.

Overview

Streaming MapReduce with Scalding and Storm

Use Cases

Best For

  • Building unified batch and streaming data pipelines with a single codebase
  • Aggregating real-time data (e.g., Twitter streams) with Storm
  • Processing large-scale batch datasets with Scalding
  • Implementing fault-tolerant MapReduce jobs that require hybrid execution
  • Simplifying distributed data processing for teams familiar with Scala collections
  • Creating production systems that need rock-solid data consistency guarantees

Not Ideal For

  • Projects using non-JVM languages like Python or R for data processing
  • Teams requiring active maintenance, frequent updates, and modern community support
  • Data pipelines needing integration with contemporary frameworks like Apache Spark or Flink
  • Small to medium-scale applications where the overhead of distributed systems (e.g., Storm setup) is unjustified

Pros & Cons

Pros

Unified Batch-Streaming API

Enables writing data processing logic once and running it on both batch (Scalding) and real-time (Storm) engines, as demonstrated in the word count example where the same code works for multiple modes.

Familiar Collection Syntax

Uses Scala/Java collection transformations like flatMap and sumByKey, making code intuitive for developers; the README shows how Summingbird code closely mirrors native Scala collections.

Hybrid Fault Tolerance

Supports hybrid execution that combines batch and real-time processing for robust data consistency, offering production-ready primitives to build fault-tolerant systems as highlighted in the features.

Platform Abstraction

Abstracts underlying platforms such as Storm and Scalding, allowing business logic to remain decoupled from execution engines, which simplifies code reuse across different processing contexts.

Cons

Retired Project Status

Marked as 'retired' in the README badge, indicating no active development or support, which poses significant risks for long-term project viability and bug fixes.

Complex Initial Setup

Getting started requires installing and configuring multiple external services like Memcached and Storm, as detailed in the example setup, adding overhead compared to more integrated solutions.

Limited Platform Support

Only integrates with Storm and Scalding, excluding newer and more widely adopted frameworks like Apache Spark or Apache Flink, which limits flexibility and ecosystem benefits.

JVM Language Lock-in

Exclusively supports Scala and Java, with no support for other programming languages, restricting adoption for teams using diverse tech stacks.

Frequently Asked Questions

Quick Stats

Stars2,123
Forks256
Contributors0
Open Issues148
Last commit4 years ago
CreatedSince 2012

Tags

#stream-processing#mapreduce#batch-processing#storm#scala-library#fault-tolerance#scalding#data-aggregation#distributed-computing

Built With

S
Scala
J
Java
S
Scalding

Links & Resources

Website

Included in

Machine Learning72.2kStreaming3.0k
Auto-fetched 1 day ago

Related Projects

Apache SupersetApache Superset

Apache Superset is a Data Visualization and Data Exploration Platform

Stars73,948
Forks17,933
Last commit1 day ago
PlotlyPlotly

Data Apps & Dashboards for Python. No JavaScript Required.

Stars24,342
Forks2,308
Last commit1 day ago
bokehbokeh

Interactive Data Visualization in the browser, from Python

Stars20,418
Forks4,262
Last commit1 day ago
ziplinezipline

Zipline, a Pythonic Algorithmic Trading Library

Stars20,001
Forks5,016
Last commit2 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub