Confluent Platform Licenses

This topic describes how to configure the license for manual deployments of Confluent Platform components. For information on how to configure licenses in automated deployments of Confluent Platform with Confluent for Kubernetes, see Configure licenses with Confluent for Kubernetes.

License Types

Developer License

A developer license allows full use of Confluent Platform features free of charge for an indefinite duration. However, the license is limited to a single broker configuration per cluster. The developer license gives developers the freedom to try the Confluent Platform commercial features available in a non-production setting.

The developer license also accommodates multiple single-broker clusters so that developers can try the Replicator between those instances, or develop failover applications, for example. Those multiple single-broker clusters share the same license.

Warning

Adding a broker starts a trial license that expires in 30 days. You cannot revert from a trial back to a developer license.

Trial (Evaluation) License

A trial (evaluation) license allows a free trial of commercial features in a production setting. Expires after 30 days. The trial license is governed by the Confluent evaluation licenses agreement. The software ceases to function when the license expires. For details, see Expired licenses.

Enterprise (Subscription) License

An enterprise license provides access to all Confluent commercial features for a production environment. An enterprise license is an annual paid subscription that expires after 365 days. The software ceases to function after the license expires. For details, see Expired licenses.

The following Confluent Platform components are under the Confluent Enterprise License:

Community License

The following Confluent Platform components are under the Confluent Community License:

Configure Component Licenses

You must configure a license for each individual Confluent Platform commercial component as described in the following sections.

Each licensed component requires a valid license key to start up. After the component starts up, it checks the license topic to use the latest valid license key.

There are two main topics that store license details of Confluent Platform components.

_confluent-command

Confluent Control Center, Connect, and Replicator use the _confluent-command internal topic on the same Confluent Server cluster to store and look up their license.

For example, if you use Control Center to update the license, all other licensed components that use the same _confluent-command license topic will be governed by that new license.

Each of these components have an option to specify a license key in their respective properties file to be evaluated on startup. See below for the component properties files. The components store this key on the _confluent-command topic.

When applying an updated license in Confluent Control Center, you must also provide an updated license key in the Confluent Server configuration file (/etc/kafka/server.properties). The updated license is evaluated against the current license information that is present in the _confluent-command topic. If necessary, that original license is updated to the newly submitted license, and the updated license is applied when the brokers restart.

Note

Starting with Confluent Platform 6.2.1, the _confluent-command internal topic is available as the preferred alternative to the _confluent-license topic for components such as Schema Registry, REST Proxy, and Confluent Server (which were previously using _confluent-license). Both topics will be supported going forward. Here are some guidelines:

  • New deployments (Confluent Platform 6.2.1 and later) will default to using _confluent-command as shown below.
  • Existing clusters will continue using the _confluent-license unless manually changed.
  • Newly created clusters on Confluent Platform 6.2.1 and later will default to creating the _confluent-command topic, and only existing clusters that already have a _confluent-license topic will continue to use it.
_confluent-license
Confluent Server brokers can use the _confluent-license topic to store and look up the license. This was the only option previous to Confluent Platform 6.2.1. Starting with Confluent Platform 6.2.1, the _confluent-command topic is preferred, but both will be supported going forward.

For more information about managing licenses in Confluent Control Center, see Managing Confluent Platform Licenses in Control Center.

Confluent Control Center

For Control Center, the license key can be entered in the Control Center License tab, or in the confluent.license parameter in the /etc/control-center/control-center.properties file.

Confluent Replicator

Configure the parameter confluent.license in various Replicator .properties files. For more information, see Confluent Platform license in Confluent Replicator Configuration Properties.

Confluent Server

Configure the parameter confluent.license in the /etc/kafka/server.properties file. For more information, see Migrate Confluent Platform to Confluent Server.

Confluent Schema Registry

A license is required only when using the Schema Registry Security Plugins. For more information, see Authentication Mechanisms.

Confluent Auto Data Balancer

A license is required only when using multiple broker configurations. Configure the parameter confluent.license in the Kafka server.properties file. For more information, see Configure license for rebalancer.

Confluent MQTT Proxy

Configure the parameter confluent.license in the MQTT Proxy etc/confluent-kafka-mqtt/kafka-mqtt-production.properties file. For more information, see Configure license for MQTT.

Confluent JMS Client

Configure the parameter confluent.license in the Kafka server.properties file. For more information, see Configure license for JMS Client.

Confluent REST Proxy

A license is required only when using the REST Proxy Security Plugins. For more information, see REST Proxy Authentication.

Confluent for Kubernetes

Add the license key for Confluent Platform components as described in Confluent for Kubernetes License.

Confluent Platform commercial connectors

The Confluent Platform commercial connectors can be used on an unlimited basis with the developer license for single-broker clusters. Multi-broker clusters can use these commercial connectors for a 30-day trial without an enterprise license key. After the trial period expires, Confluent Platform software ceases to function.

You must purchase an enterprise license to continue using commercial connectors in a multi-broker cluster. If a license is required, configure the confluent.license parameter in the Connect worker configuration, or at the individual connector level as described in License for Self-Managed Connectors.

Refer to the individual connector documentation for the specific license requirements.

Configure license clients to authenticate to Kafka

When enabled with role-based access control (RBAC) or Kafka REST Security plugins, license clients must be explicitly configured to authenticate to Apache Kafka®. For example, if a Kafka REST client talks to Kafka over a SASL_SSL enabled listener, the configuration may look like this:

confluent.license.security.protocol=SASL_SSL
confluent.license.ssl.truststore.location=/var/ssl/private/kafka_rest.truststore.jks
confluent.license.ssl.truststore.password=confluent
confluent.license.ssl.keystore.location=/var/ssl/private/kafka_rest.keystore.jks
confluent.license.ssl.keystore.password=confluent
confluent.license.ssl.key.password=confluent
confluent.license.sasl.mechanism=OAUTHBEARER
confluent.license.sasl.login.callback.handler.class=io.confluent.kafka.clients.plugins.auth.token.TokenUserLoginCallbackHandler
confluent.license.sasl.jaas.config=org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required \
username="...." \
password="...." \
metadataServerUrls="....";

To learn more, see Encrypt and Authenticate with TLS and REST Proxy Security.

Expired licenses

Developer licenses never expire. When a trial or enterprise license expires, the proprietary components react as follows after the next restart attempt:

Component Restart reaction after license expiration
Control Center Fails to start.
Replicator Fails to start and throws an exception.
Connectors Fails to start and throws an exception.
JMS client Fails to connect to any brokers and issues a license expiration message.
ADB Fails to calculate the rebalance plan and issues a license expiration message.
MQTT Proxy Fails to start.
Security plugins Fails to start.
Confluent Server Confluent Server starts, but generates frequent errors until a new license is provided. Note Confluent Server is the default broker found in the enterprise confluent-<version>.tar.gz download. To migrate from Confluent Server to Kafka, see Migrating from confluent-server to confluent-kafka.
CFK Starts up, but only allows you to delete Confluent Platform component clusters.