Skip to main content
If you know Kafka and encounter Pulsar terms in our docs (or vice versa), use this reference to translate between the two protocols.

Core concepts mapping

The following table maps common Kafka concepts to their Pulsar equivalents. Where a concept exists in one protocol but not the other, the cell is marked with a dash.
Kafka ConceptPulsar EquivalentNotes
TopicTopicSame concept. Both protocols use topics as the primary unit for organizing messages.
PartitionPartitionPulsar topics also have partitions. Both protocols use partitions for parallelism and ordering.
Consumer GroupSubscription (Failover)A Failover subscription provides one active consumer with automatic failover to standby consumers, similar to how Kafka consumer groups assign partitions to consumers.
OffsetMessage ID / CursorPulsar uses message IDs for position tracking instead of numeric offsets.
TenantPulsar’s top-level isolation boundary. Kafka Service does not use tenants.
NamespacePulsar’s logical grouping under a tenant. Kafka Service does not use namespaces.
Bootstrap ServerService URLThe connection endpoint for the cluster.
ProducerProducerSame concept. Both protocols use producers to publish messages to topics.
ConsumerConsumerSame concept. Both protocols use consumers to read messages from topics.
Kafka ConnectPulsar IOConnector frameworks for integrating external systems. StreamNative supports both.
Kafka StreamsPulsar FunctionsStream processing frameworks. Kafka Streams is a client library; Pulsar Functions run server-side.
StreamNative Kafka Schema RegistryBuilt-in Schema RegistryStreamNative Kafka Schema Registry is compatible with Confluent Schema Registry.
Retention PolicyRetention PolicyBoth Kafka and Pulsar have similar retention policy concepts for controlling how long messages are stored.

Key differences

Multi-tenancy

Pulsar provides built-in multi-tenancy through tenants and namespaces. Tenants serve as the top-level isolation boundary, and namespaces group related topics under a tenant. This hierarchy enables fine-grained access control and resource isolation. Kafka Service on StreamNative Cloud works with topics directly and does not expose the tenant or namespace layer to users.

Subscription types

Pulsar offers four subscription types that control how messages are delivered to consumers:
  • Exclusive: Only one consumer can attach to a subscription.
  • Shared: Multiple consumers receive messages in round-robin fashion.
  • Failover: One active consumer with automatic failover to standby consumers (similar to Kafka consumer groups).
  • Key_Shared: Messages with the same key are delivered to the same consumer while allowing multiple consumers on a subscription.
Kafka uses consumer groups with partition-based assignment. Each partition is assigned to exactly one consumer within a group. Kafka also supports queues as a newer delivery model that allows multiple consumers to share work without partition affinity, similar to Pulsar’s shared subscriptions.

Geo-replication

Pulsar has built-in cross-cluster replication that synchronizes data across clusters in different regions. You configure replication at the namespace or topic level. For Kafka protocol on StreamNative Cloud, use Universal Linking to replicate data across clusters.

Cluster types

StreamNative Cloud offers two cluster types:
  • Kafka Clusters: Run native Apache Kafka. Only Kafka clients can connect to Kafka Clusters.
  • Pulsar Clusters: Run native Apache Pulsar. Both Pulsar clients and Kafka clients (through KSN) can connect to Pulsar Clusters that have KSN enabled.
On StreamNative Cloud, both cluster types run on the Ursa Engine. The differences are at the API and cluster type level, not the storage level. You can choose the cluster type that best fits your application without affecting durability, performance, or operational overhead.