unstale

pypi / confluent-kafka

confluent-kafka

What changed in confluent-kafka 1 to 2, from its official release notes, upgrade guides and advisories. Sources checked 2026-11-12.

20 breaking1 security6 deprecations58 new APIs and options12 behavior and defaults1 tooling44 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.12 on npm

confluent-kafka 2117 changes

Breaking changes 9

  • The Schema Registry client requires certifi>=2026.10.19 when no custom CA location or SSL_CERT_FILE or SSL_CERT_DIR is set, avoiding trust in the compromised eMudhra root.

    2.16.1release notes

  • Closing a producer now aborts any open transaction.

    2.16.0release notes

  • Unicode encoding and decoding failures now raise SerializationError.

    2.16.0release notes

  • Uses get_running_loop() to avoid creating a new event loop and raises an error when no loop is available.

    2.15.1release notes

  • Deserializes the message key before the value; when both fail, surfaces the key error.

    2.15.1release notes

  • Type hinting is enforced for all interfaces.

    2.13.0release notes

  • The request header changed from Accept-Version to Confluent-Accept-Unknown-Properties.

    2.12.2release notes

  • Now returns a string/integer tuple for variants on version; use version for a string-only response.

    2.12.1release notes

  • Adds Python 3.14 support and drops Python 3.7 support; free-threaded capabilities are not fully supported yet.

    2.12.1release notes

Security 1

  • Uses TLS certification verification with Hashicorp Vault.

    2.15.0release notes

Deprecations 1

  • Schema Registry now prefers httpx2 over httpx to avoid Authlib deprecation warnings.

    2.16.0release notes

New APIs and options 52

  • Returns the id of the cluster the admin client is connected to; this API is experimental.

    2.16.0release notes

  • Returns the id of the cluster the async consumer is connected to; this API is experimental.

    2.16.0release notes

  • Returns the id of the cluster the async producer is connected to; this API is experimental.

    2.16.0release notes

  • A new experimental asyncio consumer counterpart accepts asyncio Schema Registry serdes and their builders.

    2.16.0release notes

  • A new experimental asyncio producer counterpart accepts asyncio Schema Registry serdes and their builders.

    2.16.0release notes

  • Support is added for saving the Azure key version with a DEK.

    2.16.0release notes

  • Returns the id of the cluster the consumer is connected to; this API is experimental.

    2.16.0release notes

  • The CEL function set now includes Decimal.

    2.16.0release notes

  • Setting this option enables durability for DLQ handling with the default global RuleRegistry.

    2.16.0release notes

  • Schema Registry supports the DLQ rule action, which tees a record to a configured DLQ topic when a rule fails while the original call still raises.

    2.16.0release notes

  • Support is added for inline validation rules.

    2.16.0release notes

  • DeserializingConsumer can accept a serde builder instead of a ready-made key serde; the client owns and closes serdes built this way.

    2.16.0release notes

  • SerializingProducer can accept a serde builder instead of a ready-made key serde; the client owns and closes serdes built this way.

    2.16.0release notes

  • Returns the same object as key(), typed with the deserialized key type on a DeserializingConsumer; this API is experimental.

    2.16.0release notes

  • Returns the same object as value(), typed with the deserialized value type on a DeserializingConsumer; this API is experimental.

    2.16.0release notes

  • Returns the id of the cluster the producer is connected to; this API is experimental.

    2.16.0release notes

  • A new experimental serde close hook is available.

    2.16.0release notes

  • A new experimental serde hook supports resolving the cluster id for associated subject lookups.

    2.16.0release notes

  • This option supplies the Kafka cluster id explicitly when an associated subject lookup occurs before a broker has been reached.

    2.16.0release notes

  • The CEL function set now includes Timestamp.

    2.16.0release notes

  • DeserializingConsumer can accept a serde builder instead of a ready-made value serde; the client owns and closes serdes built this way.

    2.16.0release notes

  • SerializingProducer can accept a serde builder instead of a ready-made value serde; the client owns and closes serdes built this way.

    2.16.0release notes

  • The CEL function set now includes Variant.

    2.16.0release notes

  • Adds an acknowledgement-commit callback for share consumers.

    2.15.0release notes

  • Adds ACCEPT, RELEASE, and REJECT acknowledgement types for share consumers.

    2.15.0release notes

  • Adds auto pool mapping support for Schema Registry.

    2.15.0release notes

  • Adds asynchronous commit support for share consumers.

    2.15.0release notes

  • Adds synchronous commit support for share consumers.

    2.15.0release notes

  • Adds the ConcurrentModificationException exception.

    2.15.0release notes

  • Adds an optional install for AWS IAM-based OAUTHBEARER authentication via AWS STS GetWebIdentityToken.

    2.15.0release notes

  • Adds a Preview deserializing share consumer; the share consumer is single-threaded, not thread-safe, and should not be used in production.

    2.15.0release notes

  • Adds the IllegalStateException exception.

    2.15.0release notes

  • Adds a method to obtain a message's delivery count.

    2.15.0release notes

  • Configure the AWS IAM OAUTHBEARER region and audience with this option.

    2.15.0release notes

  • Set this option to aws_iam to activate AWS IAM-based OAUTHBEARER authentication.

    2.15.0release notes

  • Set this option to oidc to activate AWS IAM-based OAUTHBEARER authentication.

    2.15.0release notes

  • Adds runtime SASL credential updates.

    2.15.0release notes

  • Adds implicit (default) and explicit acknowledgement modes for share consumers.

    2.15.0release notes

  • Adds a Preview share consumer with subscribe, batch poll, close, and context-manager support; it is single-threaded, not thread-safe, and should not be used in production.

    2.15.0release notes

  • Adds Schema Registry support for union-of-pools.

    2.15.0release notes

  • AIOConsumer implements the async context manager protocol.

    2.14.0release notes

  • AIOProducer implements the async context manager protocol.

    2.14.0release notes

  • Adds AssociatedNameStrategy.

    2.14.0release notes

  • Adds enableAt to RuleSet.

    2.14.0release notes

  • UAMI OAuth changes were added.

    2.13.2release notes

  • Producer now has a close() method.

    2.13.0release notes

  • Partitioner functions are now exposed for deterministic partitioning.

    2.13.0release notes

  • AIOProducer now implements __len__.

    2.13.0release notes

  • librdkafka classes can be used as context managers for scope cleanup.

    2.13.0release notes

  • Message objects can now be created directly.

    2.13.0release notes

  • Message gains serialisation support and rich comparison.

    2.13.0release notes

  • Avro Serializers now support Strict Validation Flags.

    2.13.0release notes

Behavior and default changes 10

  • The default worker pool size has increased from 2 to 100.

    2.16.0release notes

  • confluent_kafka now declares itself GIL-safe, enabling real multi-core parallelism on free-threaded CPython builds.

    2.16.0release notes

  • Clients now pass context when making KEK calls to the DEK Registry.

    2.16.0release notes

  • Both classes are now generic in their key and value types.

    2.16.0release notes

  • Makes orjson optional in JSON serdes and falls back to the standard-library json module.

    2.15.0release notes

  • Requests to Schema Registry now include the Confluent-Client-Version header.

    2.13.2release notes

  • Schema requests now include an Accept-Version header.

    2.13.0release notes

  • Async classes are no longer designated experimental.

    2.13.0release notes

  • The manager now flushes the librdkafka queue.

    2.13.0release notes

  • Admin, Producer, and Consumer clients handle OAuth token refreshes using a background thread.

    2.13.0release notes

Tooling 1

Fixes and other changes 43

  • Fixes __hash__ raising TypeError on unhashable list values so schemas with metadata.tags can be cached.

    2.16.1release notes

  • A crash involving nullable arrays of $ref items is fixed.

    2.16.0release notes

  • Error strings no longer raise or become garbled on non-UTF-8 locales.

    2.16.0release notes

  • Wheels are now available for Linux s390x, including Python 3.14t.

    2.16.0release notes

  • Concurrency safety issues in these classes are fixed.

    2.16.0release notes

  • On big-endian platforms such as s390x, purge no longer ignores in_queue, in_flight, and blocking when set to False.

    2.16.0release notes

  • Concurrent access to one Consumer instance is now serialized across threads instead of being undefined behavior.

    2.16.0release notes

  • Fixes a segmentation fault on Python 3.14 when another Admin API call follows delete_records().

    2.15.1release notes

  • Fixes a minor issue with the subjectPrefix parameter in the subjects API.

    2.15.1release notes

  • Fixes encryption failures when expanded union types have two references to the same record.

    2.15.0release notes

  • Handles non-HTTP errors during retries.

    2.15.0release notes

  • JSON transforms now handle anyOf/allOf.

    2.14.2release notes

  • Redefining a named Avro type in a diamond dependency pattern is fixed.

    2.14.2release notes

  • Encryption no longer fails when referencing self-defined types.

    2.14.2release notes

  • Import errors on Python 3.12 are fixed.

    2.14.2release notes

  • URL joining in the Python client is fixed.

    2.14.2release notes

  • Corrects type annotations for context manager hooks so they work for subclasses.

    2.14.0release notes

  • Ensures the normalize.schemas config is passed during Protobuf reference lookup.

    2.14.0release notes

  • Fixes OAuth callback handling for Async IO clients to prevent initialization failures.

    2.14.0release notes

  • Type hinting for Consumer.__init__ was fixed.

    2.13.2release notes

  • Type hinting for Consumer.commit was fixed.

    2.13.2release notes

  • A JSON schema resolver bug was fixed.

    2.13.2release notes

  • Type hinting for KafkaError was fixed.

    2.13.2release notes

  • Type hinting for Producer.__init__ was fixed.

    2.13.2release notes

  • Type hinting for Producer.produce was fixed.

    2.13.2release notes

  • Fixes a memory leak when produce is called with headers and raises BufferError or RuntimeError.

    2.13.2release notes

  • The token expiration logic in Schema Registry OAuth was fixed.

    2.13.2release notes

  • A null group name no longer causes a segfault.

    2.13.0release notes

  • Consumer.poll(), Consumer.consume(), Producer.poll(), and Producer.flush() can now be interrupted with Ctrl+C instead of blocking indefinitely.

    2.13.0release notes

  • Calls against objects with closed internal objects no longer cause segfault exceptions.

    2.13.0release notes

  • commit() now checks for Py_None in msg and offset parameters.

    2.13.0release notes

  • The return type hint now matches the type of the object that called __enter__.

    2.13.0release notes

  • Schema evolution is now handled during field transformation.

    2.13.0release notes

  • NewTopic is no longer left partially initialized when an error occurs.

    2.13.0release notes

  • Schema Registry delete behavior is fixed when client-side caching is enabled.

    2.13.0release notes

  • schemaId initialization is now thread-safe.

    2.13.0release notes

  • store_offsets() now checks for Py_None in msg and offset parameters.

    2.13.0release notes

  • Fixes string formatting on Windows to show the partition number instead of %I32d.

    2.13.0release notesrelease notes

  • Support for wrapped Avro unions is fixed.

    2.13.0release notes

  • Evolution is handled during field transformation.

    2.12.2release notes

  • Restored compatibility of macOS binaries with macOS 13.

    2.12.1release notes

  • Fixes invalid argument errors on repeated schema lookup requests.

    2.12.1release notes

  • Fixes use.schema.id handling in schema lookups.

    2.12.1release notes

confluent-kafka 125 changes

Breaking changes 11

  • Defaults to all, waiting for all in-sync replica brokers to acknowledge; this emphasizes durability at a slight cost to latency.

    1.0.0release notes

  • Defaults to 0.10 instead of 0.9; users on Apache Kafka <0.10 must configure it to their broker version.

    1.0.0release notes

  • The url configuration changes from a string to a configuration dictionary containing all application config properties.

    1.0.0release notes

  • Fixes a crash when called without group.id, which is now required.

    1.0.0release notes

  • Defaults to false; applications that require partition-end events must explicitly set it to true.

    1.0.0release notes

  • Sparse connections are on by default; setting this property to false restores connecting to all brokers in the cluster.

    1.0.0release notes

  • A group.id is now required for Python consumers.

    1.0.0release notes

  • This property is no longer used; offsets are always reported.

    1.0.0release notes

  • This property is no longer used; see reconnect.backoff.ms and reconnect.backoff.max.ms.

    1.0.0release notes

  • This property is no longer used.

    1.0.0release notes

  • This property is no longer used.

    1.0.0release notes

Deprecations 5

  • This configuration property is deprecated and will be removed in a future release.

    1.0.0release notes

  • The file value is deprecated; using a deprecated configuration property produces a warning when the client instance is created.

    1.0.0release notes

  • This configuration property is deprecated and will be removed in a future release.

    1.0.0release notes

  • This configuration property is deprecated and will be removed in a future release.

    1.0.0release notes

  • This experimental property is deprecated and will be removed in a future release.

    1.0.0release notes

New APIs and options 6

  • Supports encoding with fastavro.

    1.0.0release notes

  • Configuration is simplified by accepting a configuration dictionary for application configs.

    1.0.0release notes

  • Supports HTTP Basic Auth.

    1.0.0release notes

  • CachedSchemaRegistryClient adds Delete Schema support.

    1.0.0release notes

  • Setting this property to true enables idempotent producing, providing exactly-once producing and guaranteed message ordering.

    1.0.0release notes

  • Supports specifying a reader schema.

    1.0.0release notes

Behavior and default changes 2

Fixes and other changes 1