What is the difference between Kafka and Apache Pulsar?

Answer

Kafka and Apache Pulsar are both distributed messaging/streaming platforms but with architectural differences. Architecture: Kafka couples compute and storage (brokers store and serve data). Pulsar separates them — Brokers (stateless, serve requests) + BookKeeper (store data). Multi-tenancy: Pulsar has native multi-tenancy (Organizations, Namespaces, Topics in a hierarchy); Kafka requires naming conventions. Geo-replication: Pulsar has built-in, asynchronous geo-replication. Kafka requires MirrorMaker 2 or Confluent Replicator. Topic model: Pulsar topics are lightweight (creating millions is practical); Kafka topics/partitions have per-broker overhead. Messaging semantics: Pulsar supports both streaming (like Kafka) and traditional queuing (competing consumers, dead letters). Kafka's ecosystem (connectors, Schema Registry, ksqlDB) is more mature. Pulsar is gaining adoption for its architectural advantages at scale.