1. Build Applications
  2. Kafka Clients

Build Kafka Client Applications on StreamNative Cloud

StreamNative Cloud provides a fully managed data streaming service with complete Kafka protocol compatibility. This enables developers to build streaming applications using their preferred programming language and standard Kafka clients. You can also seamlessly migrate existing Kafka applications to StreamNative Cloud without modifying any code.

Kafka Protocol on StreamNative Cloud vs. KoP

Kafka-on-Pulsar (KoP) is an open-source protocol handler that enables Apache Pulsar brokers to support the Kafka protocol. Originally developed by StreamNative, KoP provides the foundation for StreamNative Cloud's Kafka protocol support.

StreamNative Cloud enhances KoP by providing an enterprise-grade Kafka-compatible experience with additional features and capabilities. The comparison tables below highlight the key differences between StreamNative Cloud's Kafka Protocol implementation and the open-source KoP.

StreamNative Cloud offers two data streaming engines: the Classic Engine and the Ursa Engine (currently in Public Preview). The following tables detail the features supported by each implementation and the differences between StreamNative's implementation and KoP.

Kafka Protocol Support

Note

Please note that KStreams and KSqlDB support in Ursa Engine has certain limitations. It doesn't support functionalities that require transactions and topic compaction.

Classic EngineUrsa EngineKoP
Publish & ConsumeYESYESYES
Unified Schema RegistryComing SoonComing Soon-
Kafka Schema RegistryYESYESYES
TransactionsYESComing SoonYES
Compacted TopicYESComing Soon
KStreams IntegrationYESYes, with limitations
KSqlDB IntegrationYESYes, with limitations

Production Readiness

Classic EngineUrsa EngineKoP
OAuth AuthenticationYESYES-
Kubernetes AuthenticationYESYES-
RBACComing SoonComing Soon-
Schema Registry OAuth AuthenticationYESYES-
Schema Registry RBACComing SoonComing Soon-
TLSYESYESYES
AuthorizationYESYESYES
Multi-AZ / Multi-Region ClustersYESYES-
Geo-replicationYESYES-

Deployments and Efficient Operations

Classic EngineUrsa EngineKoP
Serverless / DedicatedYESComming Soon-
BYOCYESYES-
Private CloudYESComing Soon-
On-prem (self-managed)YESComing SoonYES
Auto-scalingYESYES-
Cloud Console / UIYESYES-

You can use StreamNative Cloud for your existing Kafka applications and services without migrating the code. See a full list of supported Kafka clients and Kafka Compatibility.

Get started

To get started with StreamNative Cloud using Kafka, see the QuickStart guide to learn how to set up a cluster with Kafka protocol enabled and configure a Kafka client for producing and consuming messages.

For language-specific setup instructions, refer to our Kafka Client Guides which provide QuickStart tutorials for your preferred programming language.

Use Kafka Client Setup Wizard

After provisioning your cluster, StreamNative Console provides a step-by-step wizard to help you set up Kafka client libraries and tools. The wizard guides you through the basic setup and configuration process, including selecting or creating service accounts, downloading key files or tokens, installing client libraries, and generating sample code to run.

To get started with the Kafka client setup wizard, follow these steps.

  1. Navigate to your StreamNative Cloud cluster.

  2. On the left navigation pane, in the Clients section, click Kafka Clients.

    gif of kafka client setup process through wizard

  3. Follow the wizard to generate the sample code you need for connecting to your StreamNative cluster.

With a copy-and-paste, you can run the given sample code to produce and consume messages.

Kafka Clients

LanguageReferencesDescription
Kafka Java clientQuickStart | Client Guide | TutorialJava producer and consumer shipped with Apache Kafka.
Kafka C/C++ clientQuickStart | Tutoriallibrdkafka, a C/C++ library for Kafka.
Kafka Python clientQuickStart | TutorialPython client that provides high-level producer, consumer and AdminClient.
Kafka Go clientQuickStart | TutorialGo client that offers a producer and consumer for Kafka.
Kafka Node.js clientQuickStart | TutorialNode.js client that provides Kafka APIs
Kafka .NET clientTutorial.NET client that provides a high-level producer, consumer and AdminClient.

Kafka CLI & Tools

You can use the Kafka CLI tools to connect to your StreamNative cluster. You can see a quickstart guide here. For more information, see Use Kafka Tools with StreamNative Cloud.

Kafka Connect

StreamNative Cloud provides full compatibility with Kafka Connect, offering two deployment options: you can self-host Kafka Connect connectors in your own environment (see examples here), or leverage fully managed Kafka Connect connectors running directly in StreamNative Cloud.

Kafka Streams

You can also build data streaming applications using Kafka Streams. See the Kafka Streams QuickStart for more information. Please note that StreamNative Cloud doesn't host any Kafka Streams applications.

KSQL

You can also build data streaming applications using KSQL. See the KSQL QuickStart for more information. Please note that StreamNative Cloud doesn't host the KSQL service.

Learn more advanced topics

Integrations

Previous
Transactions