apache/beam

Apache Beam is a unified programming model for Batch and Streaming data processing.

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 42 minutes ago
Added to GitGenius on January 3rd, 2025
Created on February 2nd, 2016
Open Issues & Pull Requests: 3,980 (+2)
Number of forks: 4,628
Total Stargazers: 8,647 (+0)
Total Subscribers: 258 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 3.6 days
Mean response time: 263.9 days
90th percentile: 1202.0 days
Tracked items: 2,493

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 61% of open issues come from outside the core team, a mix of external reports and the maintainers' own roadmap. Work labelled "P2" is answered fastest, typically in about 16 hours, while "P3" waits about 36 months. 49% of tracked open issues have had no activity in three months. Only 3% of issues opened in the past year have been closed.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 3,542
New in 7 days: 14
Closed in 7 days: 22
Avg open age: 1,259 days
Stale 30+ days: 3,436
Stale 90+ days: 3,342

Recent activity

Opened in 7 days: 9
Closed in 7 days: 17
Comments in 7 days: 23
Events in 7 days: 84

Top labels

  • P3 (3,780)
  • bug (3,310)
  • P2 (2,554)
  • java (2,073)
  • python (1,787)
  • io (1,440)
  • new feature (1,271)
  • awaiting triage (1,242)

Detailed Description

Apache Beam is a unified programming model for defining and executing both batch and streaming data-parallel processing pipelines. The project provides language-specific SDKs for constructing pipelines and multiple runners for executing them on distributed processing backends including Apache Flink, Apache Spark, Google Cloud Dataflow, and Hazelcast Jet. The repository is written primarily in Java and is maintained under the Apache Software Foundation.

The core of Beam's design philosophy centers on three key abstractions: PCollection represents a collection of data that can be bounded or unbounded in size, PTransform represents a computation that transforms input PCollections into output PCollections, and Pipeline manages a directed acyclic graph of PTransforms and PCollections ready for execution. This model evolved from several internal Google data processing projects including MapReduce, FlumeJava, and Millwheel, and was originally known as the Dataflow Model.

Beam supports multiple language-specific SDKs for writing pipelines against its unified model. The repository currently contains SDKs for Java, Python, and Go, with provisions for community contributions of additional SDKs and domain-specific languages. The project also provides multiple execution runners that allow the same pipeline code to execute on different distributed processing backends. Available runners include the DirectRunner for local machine execution, the DataflowRunner for Google Cloud Dataflow, the FlinkRunner for Apache Flink clusters, the SparkRunner for Apache Spark clusters, the JetRunner for Hazelcast Jet clusters, and the Twister2Runner for Twister2 clusters.

The repository demonstrates significant community engagement and maintenance activity.

Beam is classified across a comprehensive range of data processing domains including streaming analytics, ETL workflows, cloud-native platforms, big data processing, batch processing, pipeline frameworks, distributed computing, real-time analytics, parallel processing, data pipelines, event-driven applications, stream processing, real-time computing, and machine learning pipelines. The project supports embarrassingly parallel data processing and is designed to serve three distinct user categories: end users writing pipelines with existing SDKs, SDK writers developing language-specific implementations, and runner writers implementing execution environments for distributed processing.