pulsar
Apache Pulsar - distributed pub-sub messaging system
Apache Pulsar is a distributed messaging system, like a postal service for software, that moves millions of messages per second across services with geo-replication and multi-tenant isolation built in.
Apache Pulsar is a distributed pub-sub messaging system — a kind of postal service for software, where one part of an application publishes messages on a named channel (called a topic) and other parts subscribe to receive them. It is built to move very large amounts of data between services, supporting millions of independent topics and millions of messages per second.
It offers strong ordering and consistency guarantees, meaning messages arrive reliably and in the order they were sent, and it supports both topic streaming (a continuous feed of events) and queue semantics (work items picked up one at a time). Pulsar is designed to run as a hosted service: it includes multi-tenancy (multiple teams sharing one cluster with their own authentication, authorization, and quotas), a load balancer, geo-replication (copying data between data centers), and transparent handling of partitioned topics and message batching. It also tracks each consumer's position in the message stream and exposes a REST API for provisioning, administration, and stats.
Teams typically reach for Pulsar when they need a backbone for event streaming, message queuing, or decoupling services at scale, especially across multiple regions or tenants.
The core is written in Java and built with Gradle. Recent versions (4.x and master) target JDK 21 for the broker, with the command-line tools and Java client supporting JDK 17 or 21. Official client libraries are maintained for .NET/C#, C++, Go, Node.js, Python, and a reactive Java variant. The project is part of the Apache Software Foundation and licensed under Apache 2.0. The full README is longer than what was provided.
Where it fits
- Build an event-driven microservices backbone that decouples producers and consumers at millions of messages per second.
- Replace a messaging cluster with Pulsar to get built-in geo-replication between data centers without extra tooling.
- Set up a multi-tenant messaging platform where different teams get isolated topics with their own authentication and quotas on one shared cluster.
- Stream data between regions using Pulsar geo-replication for disaster recovery or globally distributed writes.