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 4 minutes ago
Added to GitGenius on January 3rd, 2025
Created on February 2nd, 2016
Open Issues & Pull Requests: 3,974 (+0)
Number of forks: 4,622
Total Stargazers: 8,639 (+1)
Total Subscribers: 258 (+0)

Issue Activity (beta)

Open issues: 3,549
New in 7 days: 18
Closed in 7 days: 29
Avg open age: 1,258 days
Stale 30+ days: 3,420
Stale 90+ days: 3,233

Recent activity

Opened in 7 days: 6
Closed in 7 days: 25
Comments in 7 days: 30
Events in 7 days: 120

Top labels

  • P3 (3,777)
  • bug (3,300)
  • P2 (2,540)
  • java (2,064)
  • python (1,786)
  • io (1,436)
  • new feature (1,267)
  • awaiting triage (1,239)

Repository Insights (GitGenius)

Median issue/PR response: 3.7 days
Mean response time: 266.0 days
90th percentile: 1202.1 days
Tracked items: 2,470

Most active contributors

Sign in to see contributor activity.

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 17 hours, while "P3" waits about 36 months. Almost all tracked open issues have seen activity in the last three months. Only 3% of issues opened in the past year have been closed.

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.

beam
by
apacheapache/beam

Repository Details

Fetching additional details & charts...