Skip to main content
StreamNative Cloud offers two ways to run Kafka workloads: Kafka Clusters (native Apache Kafka) and Kafka compatibility on Pulsar Clusters (via KSN). This page helps you understand the differences and choose the right option.

Overview

  • Kafka Clusters run native Apache Kafka on the Ursa Engine. There is no protocol translation — your Kafka clients connect directly to a native Kafka broker. This is the recommended option for Kafka workloads.
  • KSN (on Pulsar Clusters) provides Kafka API compatibility within Pulsar Clusters. KSN translates the Kafka protocol to Pulsar storage, allowing Kafka clients to produce and consume messages on Pulsar topics. This option is best when you need both Kafka and Pulsar clients on the same cluster.

Feature comparison

FeatureKafka ClusterKSN
ProtocolNative Apache KafkaKafka protocol translated to Pulsar
Kafka API compatibility100% — native KafkaHigh — see compatibility matrix
TransactionsSupportedComing soon (Cost Optimized) / Supported (Latency Optimized)
Topic compactionSupportedComing soon (Cost Optimized) / Supported (Latency Optimized)
Kafka StreamsSupportedSupported with limitations on Cost Optimized
KSqlDBSupportedSupported with limitations on Cost Optimized
Pulsar client accessNot availableSupported — both Pulsar and Kafka clients on the same cluster
Multi-tenancyTopic-level ACLsTenant and namespace isolation
Built-in geo-replicationVia Universal LinkingSupported
Subscription typesConsumer groupsExclusive, shared, failover, key-shared
Retention policyStandard Kafka retention (time/size-based)Pulsar retention (subscription-based by default)
Cluster profilesLatency-Optimized and Cost-OptimizedLatency-Optimized and Cost-Optimized
StatusPublic PreviewGA

When to use Kafka Clusters

Choose Kafka Clusters when:
  • You want full native Kafka behavior with no protocol translation.
  • Your workloads are Kafka-only and you do not need Pulsar or MQTT client access.
  • You need Kafka transactions and topic compaction on the Ursa Engine.
  • You are migrating from Amazon MSK, Confluent, or self-managed Kafka and want a drop-in replacement.
  • You want standard Kafka retention policies without learning Pulsar retention concepts.

When to use KSN on Pulsar Clusters

Choose KSN on Pulsar Clusters when:
  • You need multi-protocol access — both Kafka and Pulsar clients reading from the same topics.
  • You have existing Pulsar Clusters and want to add Kafka client access to them.
  • You need Pulsar-specific features like built-in geo-replication, flexible subscriptions, or multi-tenancy with tenant/namespace isolation.
  • You want MQTT support on the same cluster via MoP.

Migration between options

If you are currently using KSN on Pulsar Clusters and want to move to native Kafka Clusters, you can use Universal Linking to replicate data between clusters during the transition.
Kafka Clusters and Pulsar Clusters cannot currently co-exist in the same StreamNative instance. Plan your instance topology accordingly.

Next steps

Get Started with Kafka Service

Create a native Kafka Cluster and produce your first message.

Kafka on Pulsar Clusters

Set up Kafka compatibility on your existing Pulsar Clusters using KSN.