# Apache Kafka vs Apache Pulsar

| Attribute | Apache Kafka | Apache Pulsar |
|---|---|---|
| **Vioscale score** | 60.1 (51% (medium)) | 58.9 (29% (low)) |
| activity.commits_last_30d | 100 | 69 |
| adoption.dependent_repos | 1 | 316 |
| adoption.github_stars | 33,629 | 15,315 |
| adoption.package_downloads_weekly | 5,508,093 | - |
| deployment.options | `{"self_hosted":true}` | `{"cloud":true,"self_hosted":true}` |
| description.long | Apache Kafka is a free system for capturing, storing, and processing data streams in real time. It enables organizations to reliably move large volumes of data between applications and systems, with support for transformations, aggregations, and stateful processing. | A distributed messaging system built for cloud deployments that enables applications to reliably publish and consume messages—either individually or as continuous streams—with sub-10-millisecond latency, supporting millions of independent topics and large-scale streaming workloads. |
| features.capabilities | `{"hosting":"self","ordering":"per_partition","paradigm":"pubsub","protocol":"Binary over TCP (SSL/SASL for authentication/encryption)","message_replay":true,"persistent_log":true,"consumer_groups":true,"geo_replication":true,"kafka_compatible":true,"managed_offering":false,"stream_processing":true,"delivery_guarantee":"exactly_once","horizontal_scaling":true}` | `{"hosting":"both","ordering":"per_partition","paradigm":"pubsub","protocol":"pulsar://","message_replay":true,"persistent_log":true,"consumer_groups":true,"geo_replication":true,"kafka_compatible":true,"stream_processing":true,"delivery_guarantee":"exactly_once","horizontal_scaling":true}` |
| integrations.count | 4 | 35 |
| integrations.list | `[{"name":"Postgres"},{"name":"JMS"},{"name":"Elasticsearch"},{"name":"AWS S3"}]` | `[{"name":"Kafka"},{"name":"RabbitMQ"},{"name":"MongoDB"},{"name":"Cassandra"},{"name":"Elasticsearch"},{"name":"HBase"},{"name":"HDFS"},{"name":"InfluxDB"},{"name":"Redis"},{"name":"Solr"},{"name":"DynamoDB"},{"name":"Kinesis"},{"name":"Azure Data Explorer"},{"name":"ClickHouse"},{"name":"PostgreSQL"},{"name":"MariaDB"},{"name":"SQLite"},{"name":"Debezium MySQL"},{"name":"Debezium PostgreSQL"},{"name":"Debezium MongoDB"},{"name":"Debezium Oracle"},{"name":"Debezium Microsoft SQL Server"},{"name":"Canal"},{"name":"Aerospike"},{"name":"Alluxio"},{"name":"NSQ"},{"name":"Netty"},{"name":"HTTP"},{"name":"File"}]` |
| language.primary | Java | Java |
| license.spdx | Apache-2.0 | Apache-2.0 |
| market.availability | `{"primaryMarkets":[],"availabilityScope":"global","availableCountries":[],"notAvailableCountries":[]}` | - |
| platform.support | `{"cli":true,"linux":true}` | `{"cli":true}` |
| pricing | `{"type":"open_source","freeTier":true,"sourceUrl":"https://kafka.apache.org","retrievedAt":"2026-08-14T11:04:16.831Z"}` | `{"type":"open_source","sourceUrl":"https://pulsar.apache.org","retrievedAt":"2026-08-14T11:10:46.807Z"}` |
| pricing.free_tier | yes | yes |
| pricing.model | open_source | commercial |
| pricing.price_level | free | free |
| release.history | - | `[{"url":"https://github.com/apache/pulsar/releases/tag/v4.2.4","date":"2026-08-03T09:19:30Z","type":"stable","version":"v4.2.4"},{"url":"https://github.com/apache/pulsar/releases/tag/v4.0.13","date":"2026-08-03T09:19:06Z","type":"stable","version":"v4.0.13"},{"url":"https://github.com/apache/pulsar/releases/tag/v4.2.3","date":"2026-07-06T08:46:50Z","type":"stable","version":"v4.2.3"},{"url":"https://github.com/apache/pulsar/releases/tag/v4.0.12","date":"2026-07-06T08:46:18Z","type":"stable","version":"v4.0.12"},{"url":"https://github.com/apache/pulsar/releases/tag/v5.0.0-M1","date":"2026-06-23T14:11:26Z","type":"prerelease","version":"v5.0.0-M1"},{"url":"https://github.com/apache/pulsar/releases/tag/v4.2.2","date":"2026-06-08T18:16:45Z","type":"stable","version":"v4.2.2"},{"url":"https://github.com/apache/pulsar/releases/tag/v4.0.11","date":"2026-06-08T18:16:01Z","type":"stable","version":"v4.0.11"},{"url":"https://github.com/apache/pulsar/releases/tag/v4.2.1","date":"2026-04-27T13:04:33Z","type":"stable","version":"v4.2.1"},{"url":"https://github.com/apache/pulsar/releases/tag/v4.0.10","date":"2026-04-27T13:04:17Z","type":"stable","version":"v4.0.10"},{"url":"https://github.com/apache/pulsar/releases/tag/v3.0.17","date":"2026-04-27T13:03:58Z","type":"stable","version":"v3.0.17"},{"url":"https://github.com/apache/pulsar/releases/tag/v4.2.0","date":"2026-03-31T21:12:26Z","type":"stable","version":"v4.2.0"},{"url":"https://github.com/apache/pulsar/releases/tag/v4.1.3","date":"2026-02-19T19:48:49Z","type":"stable","version":"v4.1.3"},{"url":"https://github.com/apache/pulsar/releases/tag/v4.0.9","date":"2026-02-19T19:48:13Z","type":"stable","version":"v4.0.9"},{"url":"https://github.com/apache/pulsar/releases/tag/v3.0.16","date":"2026-02-16T09:24:53Z","type":"stable","version":"v3.0.16"},{"url":"https://github.com/apache/pulsar/releases/tag/v4.1.2","date":"2025-11-17T07:58:34Z","type":"stable","version":"v4.1.2"},{"url":"https://github.com/apache/pulsar/releases/tag/v4.0.8","date":"2025-11-17T07:58:06Z","type":"stable","version":"v4.0.8"},{"url":"https://github.com/apache/pulsar/releases/tag/v3.0.15","date":"2025-11-17T07:57:45Z","type":"stable","version":"v3.0.15"},{"url":"https://github.com/apache/pulsar/releases/tag/v4.1.1","date":"2025-09-27T04:40:25Z","type":"stable","version":"v4.1.1"},{"url":"https://github.com/apache/pulsar/releases/tag/v4.0.7","date":"2025-09-27T04:40:06Z","type":"stable","version":"v4.0.7"},{"url":"https://github.com/apache/pulsar/releases/tag/v3.3.9","date":"2025-09-27T04:39:25Z","type":"stable","version":"v3.3.9"}]` |
| security.scorecard | 6.1 | 7 |
| security.vulnerabilities | `{"count":0,"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=go&package_name=github.com%2Fapache%2Fkafka&per_page=100","last_12m":0,"max_severity":null}` | `{"count":0,"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=maven&package_name=org.apache.pulsar%3Apulsar-client-admin&per_page=100","last_12m":0,"max_severity":null}` |

## Capabilities (Message Queues)

| Capability | Apache Kafka | Apache Pulsar |
|---|:--:|:--:|
| **Core** |  |  |
| Messaging paradigm | Pub/sub | Pub/sub |
| **Correctness** |  |  |
| Delivery guarantee | Exactly-once | Exactly-once |
| Ordering guarantee | Per-partition | Per-partition |
| **Durability** |  |  |
| Durable replayable log | ✓ | ✓ |
| Message replay / rewind | ✓ | ✓ |
| **Interop** |  |  |
| Wire protocol | Binary over TCP (SSL/SASL for authentication/encryption) | pulsar:// |
| Kafka-protocol compatible | ✓ | ✓ |
| **Scale** |  |  |
| Partitioned horizontal scaling | ✓ | ✓ |
| Geo / cross-region replication | ✓ | ✓ |
| **Consumption** |  |  |
| Consumer groups / competing consumers | ✓ | ✓ |
| Dead-letter queue | - | - |
| **Deployment** |  |  |
| Managed cloud offering exists | ✗ | - |
| Hosting | Self-hosted only | Cloud + self-hosted |
| **Processing** |  |  |
| Built-in stream processing | ✓ | ✓ |

*Source: Vioscale. Generated 2026-09-01T17:13:45.080Z. "-" = undocumented, not absent.*
