apache/pulsar

Apache Pulsar - distributed pub-sub messaging system

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 23 minutes ago
Added to GitGenius on January 4th, 2025
Created on June 28th, 2016
Open Issues & Pull Requests: 1,749 (+0)
Number of forks: 3,748
Total Stargazers: 15,312 (+0)
Total Subscribers: 392 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 42.6 hours
Mean response time: 151.9 days
90th percentile: 535.6 days
Tracked items: 913

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 80% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Work labelled "type/enhancement" is answered fastest, typically in about 26 hours, while "doc-required" waits about 4 weeks. 45% of tracked open issues have had no activity in three months. Only 8% of issues opened in the past year have been closed.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 1,074
New in 7 days: 34
Closed in 7 days: 1
Avg open age: 1,057 days
Stale 30+ days: 1,023
Stale 90+ days: 994

Recent activity

Opened in 7 days: 29
Closed in 7 days: 1
Comments in 7 days: 0
Events in 7 days: 32

Top labels

  • type/bug (3,393)
  • lifecycle/stale (1,332)
  • Stale (835)
  • type/feature (687)
  • type/enhancement (662)
  • help wanted (488)
  • area/test (481)
  • type/flaky-tests (475)

Detailed Description

Apache Pulsar is a distributed pub-sub messaging platform written in Java that provides a flexible messaging model and intuitive client API for event streaming and real-time data processing. The repository serves as the core implementation of the Apache Pulsar project, which is designed to handle millions of independent topics and millions of messages published per second with strong ordering and consistency guarantees.

The platform offers horizontal scalability through its distributed architecture, enabling deployment as a hosted service with multi-tenant support. Key features include low-latency durable storage, support for both topic and queue semantics, built-in load balancing, and transparent handling of partitioned topics. Pulsar incorporates authentication and authorization mechanisms, quota management, and optional hardware isolation to support mixing very different workloads. The system maintains consumer cursor positions and provides a REST API for provisioning, administration, and statistics collection. Additional capabilities include geo-replication, transparent message batching, and Kafka compatibility.

The codebase is primarily written in Java and requires JDK 21 or JDK 25 for the master branch, with different version requirements for stable releases. The project uses Gradle as its build system and includes a Gradle Wrapper for convenience. The repository includes comprehensive documentation on building, contributing, and setting up development environments, with specific guidance for IDE configuration in IntelliJ IDEA or Eclipse.

Activity analysis shows this is a highly active project with significant community engagement.

The Pulsar ecosystem extends beyond the core repository through multiple satellite projects maintained by the Pulsar PMC. These include client libraries for .NET/C#, C++, Go, Node.js, Python, and a Reactive Java client. Supporting tools include Pulsar Manager for dashboard and management capabilities, a Helm Chart for Kubernetes deployment, adapters for ecosystem integration, and dedicated CI/CD infrastructure. The project maintains active communication channels through mailing lists for users and developers, as well as a Slack community at apache-pulsar.slack.com.

The repository demonstrates cloud-native architecture principles with Kubernetes integration support and is classified across multiple domains including event streaming, distributed systems, data ingestion, stream processing, real-time data streaming, and distributed messaging. The project emphasizes low-latency performance and scalability as core design principles, making it suitable for event-driven architectures and real-time data processing applications.