Apache Pulsar vs NATS
Apache Pulsar
pulsar.apache.orgNATS
nats.ioSide by side
| Figure | Apache Pulsar | NATS |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | Yes | — |
| macOS | Yes | — |
| Linux | Yes | Yes |
| API | Yes | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · Distributed Systems | 8.1 (#12) | 7.5 (#22) |
| Spec score · Message Queue (MQ) Software | 8.1 (#12) | 7.5 (#19) |
| Deployment | Pulsar can run in Docker or Kubernetes, and the project offers a Helm chart for Kubernetes deployment. | NATS is designed for distributed systems and edge deployments, and supports topology growth using leaf nodes and superclusters. |
| Integrations | Built-in connectors import and export data for systems including Kafka, RabbitMQ, MySQL, PostgreSQL, MongoDB, Cassandra, and Elasticsearch. | The download page lists connectors and utilities for Apache Flink, Apache Spark, AWS, Elasticsearch, Fluent Bit, MongoDB, Prometheus, and other tools. |
Plans
In their own words
Apache Pulsar
Apache Pulsar is a free, open-source distributed messaging and streaming platform built for cloud use. It supports message consumption with less than 10 ms latency and up to one million unique topics in a cluster. Configurable replication across geographic regions and automatic client failover to healthy clusters support multi-region deployments. Tenants and policies control access to data and actions, and can isolate brokers to limit noisy-neighbor effects. Maintained client libraries are available for Java, Go, Python, C++, Node.js, and C#. Built-in connectors move data to and from systems including Kafka, RabbitMQ, MySQL, PostgreSQL, MongoDB, Cassandra, and Elasticsearch. Pulsar Functions process messages with user-defined logic in Java, Python, or Go. Tiered storage can offload data from BookKeeper to blob storage such as S3 for unlimited retention. It can run in Docker or Kubernetes, with a Helm chart for Kubernetes. Encryption, authentication, and authorization are available but are not enabled by default. The 5.0.0-M2 milestone is for early testing and feedback, not production use.