Skip to main content
StreamNative Cloud offers two data streaming services: Kafka Service and Pulsar Service. Both run on the Ursa Engine. Choose based on your workload pattern and existing ecosystem.

Quick decision

  • You have existing Kafka workloads or Kafka client libraries in production.
  • Your primary pattern is event streaming: event sourcing, log aggregation, CDC, clickstream, or telemetry.
  • You want native Kafka API behavior with full compatibility for producers, consumers, consumer groups, and Kafka Connect.
  • You are migrating from Amazon MSK, Confluent Cloud, or self-managed Kafka and want a drop-in replacement.

Feature comparison

CapabilityKafka ClusterPulsar Cluster
Primary protocolKafka (native)Pulsar (native)
Multi-protocol on same clusterKafka onlyPulsar, Kafka (via KSN), MQTT (via MoP), REST
Multi-tenancyTopic-level ACLsTenant and namespace isolation
Geo-replicationUniLinkBuilt-in, active-active across regions
Queue semanticsQueues for KafkaShared subscriptions with per-message acknowledgment
Consumer modelPartition failover + queueFlexible subscriptions (exclusive, shared, failover, key-shared)
Lakehouse integrationBuilt-in with Ursa EngineBuilt-in (Ursa) or available as add-on (Classic)
StatusPublic PreviewGA

Messaging vs. streaming

The core difference between the two services maps to two data movement patterns: messaging and streaming.

Messaging (Pulsar strength)

Messaging is consumer-centric delivery. Messages are dispatched to consumers, acknowledged individually, and removed from the backlog once processed. This model works well when you need:
  • Competing consumers: Multiple workers sharing a workload through shared subscriptions.
  • Per-message acknowledgment: Track processing at the individual message level.
  • Flexible routing: Route messages to different consumers based on subscription type (exclusive, shared, failover, key-shared).
Pulsar Service is designed for this pattern. Its subscription model gives you fine-grained control over how messages are distributed and acknowledged.
The messaging features in Pulsar have seen widespread adoption and have been running in production for many years. Queue support for Kafka is relatively new — evaluate carefully before adopting it for production messaging workloads.

Streaming (Kafka strength)

Streaming is log-centric processing. Events are appended to a durable, ordered log. Consumers read at their own pace using offsets and can replay the log at any time. This model works well when you need:
  • Event replay: Reprocess historical data by resetting offsets.
  • Ordered processing: Maintain strict ordering within partitions.
  • Decoupled consumers: Multiple independent consumer groups reading the same log without coordination.
Kafka Service is designed for this pattern. Its consumer group model gives each consumer group an independent view of the log.

Powered by Ursa Engine

Both services are built on the Lakestream architectural paradigm and powered by the Ursa Engine, which provides:
  • Leaderless brokers: Any broker handles any partition, eliminating leader bottlenecks.
  • Compute/storage separation: Provides the flexibility to choose between local disks for low latency and shared storage (lakehouse storage) for cost-efficiency.
  • Lakehouse-native storage: Data stored in open formats for direct query by analytics engines.
  • Cost reduction: Up to 95% lower infrastructure costs compared to traditional architectures by eliminating inter-AZ replication.
To learn more about the architecture, see Lakestream Architecture.

Next steps

Get Started with Kafka Service

Native Apache Kafka on Ursa. 100% Kafka compatible, leaderless, and lakehouse-native.

Explore Pulsar Service

Apache Pulsar with multi-protocol support for messaging and streaming workloads.