Apache Pulsar is an open-source messaging and streaming platform that splits brokers from storage, keeping segments in Apache BookKeeper so capacity and serving scale independently, with multi-tenancy and geo-replication built in.
Self-hosted as brokers, a BookKeeper ensemble, and a metadata store (Oxia recommended for new deployments, ZooKeeper still supported), commonly on Kubernetes. Pulsar IO connectors and Pulsar Functions run on worker nodes; tiered offload moves old segments to object storage. Managed offerings come from StreamNative and others.
How Apache Pulsar answers the questions Event Streaming turns on.
| How it works | |
| Protocol | Pulsar's own; Kafka, AMQP and MQTT via protocol handlers |
| Consumption model | Log with subscriptions: replay, plus shared queue mode |
| Storage | Stateless brokers over BookKeeper segments; tiered offload |
| Delivery guarantee | Exactly-once with transactions · since 2.8 |
| Running it | |
| What you run | Brokers, BookKeeper and a metadata store, Oxia or ZooKeeper |
| Scaling | Add brokers without moving data; segments spread across BookKeeper |
| Multi-region | Built in: asynchronous multi-cluster, with replicated subscriptions |
| Connections | |
| Connectors | Pulsar IO sources and sinks, run as Functions on worker nodes |
| Transformations | Pulsar Functions, including a transform Function before a sink |
| Cost | |
| Billing unit | None for the project; managed Pulsar billed by the vendor |
vs Apache Pulsar: Commercial · Managed · Serverless · Subscription · Operational complexity: Low
vs Apache Pulsar: Java, Scala
vs Apache Pulsar: Free · Subscription · Operational complexity: Medium