All Versions
Latest Version
Avg Release Cycle
95 days
Latest Release

Changelog History
Page 1

  • v1.8.2 Changes

    ๐Ÿš€ This is a maintenance release:

    • Bundles librdkafka v1.8.2
    • Check termination channel while reading delivery reports (by @zjj)
    • Added convenience method Consumer.StoreMessage() (@finncolman, #676)

    ๐Ÿ‘€ confluent-kafka-go is based on librdkafka v1.8.2, see the ๐Ÿš€ librdkafka release notes โฌ†๏ธ for a complete list of changes, enhancements, fixes and upgrade considerations.

    Note: There were no confluent-kafka-go v1.8.0 and v1.8.1 releases.

  • v1.8.0 Changes

    ๐Ÿš€ This is a maintenance release to upgrade the bundled librdkafka version to v1.8.0.

    ๐Ÿ‘€ confluent-kafka-go is based on librdkafka v1.8.0, see the ๐Ÿš€ librdkafka release notes โฌ†๏ธ for a complete list of changes, enhancements, fixes and upgrade considerations.

  • v1.7.0 Changes

    ๐Ÿ‘€ confluent-kafka-go is based on librdkafka v1.7.0, see the ๐Ÿš€ librdkafka release notes โฌ†๏ธ for a complete list of changes, enhancements, fixes and upgrade considerations.

    โœจ Enhancements

    • Experimental Windows support (by @neptoess).
    • The produced message headers are now available in the delivery report Message.Headers if the Producer's configuration property is set to include headers, e.g.: "": "key,value,headers" This comes at a performance cost and are thus disabled by default.

    ๐Ÿ›  Fixes

    • 0๏ธโƒฃ AdminClient.CreateTopics() previously did not accept default value(-1) of ReplicationFactor without specifying an explicit ReplicaAssignment, this is now fixed.
  • v1.6.1 Changes

    ๐Ÿš€ v1.6.1 is a feature release:

    • KIP-429: Incremental consumer rebalancing - see [cooperative_consumer_example.go](examples/cooperative_consumer_example/cooperative_consumer_example.go) for an example how to use the new incremental rebalancing consumer.
    • KIP-480: Sticky producer partitioner - increase throughput and decrease latency by sticking to a single random partition for some time.
    • KIP-447: Scalable transactional producer - a single transaction producer can now be used for multiple input partitions.

    ๐Ÿ‘€ confluent-kafka-go is based on and bundles librdkafka v1.6.1, see the ๐Ÿš€ librdkafka release notes โฌ†๏ธ for a complete list of changes, enhancements, fixes and upgrade considerations.

    โœจ Enhancements

    •,key,value,none can now be used to avoid copying message key and/or value to the delivery report, improving performance in high-throughput applications (by @kevinconaway).

    ๐Ÿ›  Fixes

    • Consumer.Close() previously did not trigger the final RevokePartitions callback, this is now fixed.
  • v1.5.2 Changes

    November 05, 2020

    confluent-kafka-go v1.5.2

    ๐Ÿš€ v1.5.2 is a maintenance release with the following fixes and enhancements:

    • ๐Ÿš€ Bundles librdkafka v1.5.2 - see release notes for all enhancements and fixes.
    • ๐Ÿ“š Documentation fixes

    ๐Ÿ‘€ confluent-kafka-go is based on librdkafka v1.5.2, see the
    ๐Ÿš€ librdkafka release notes
    โฌ†๏ธ for a complete list of changes, enhancements, fixes and upgrade considerations.

  • v1.4.2 Changes

    May 07, 2020

    confluent-kafka-go v1.4.2

    ๐Ÿš€ v1.4.2 is a maintenance release:

    • The bundled librdkafka directory (kafka/librdkafka) is no longer pruned by Go mod vendor import.
    • โฌ†๏ธ Bundled librdkafka upgraded to v1.4.2, highlights:
      • System root CA certificates should now be picked up automatically on most platforms
      • Fix produce/consume hang after partition goes away and comes back,
        such as when a topic is deleted and re-created (regression in v1.3.0).

    librdkafka v1.4.2 changes

    ๐Ÿš€ See the librdkafka v1.4.2 release notes for changes to the bundled librdkafka included with the Go client.

  • v1.4.0 Changes

    April 08, 2020

    confluent-kafka-go v1.4.0

    • Added Transactional Producer API and full Exactly-Once-Semantics (EOS) support.
    • A prebuilt version of the latest version of librdkafka is now bundled with the confluent-kafka-go client. A separate installation of librdkafka is NO LONGER REQUIRED or used.
    • โž• Added support for sending client (librdkafka) logs to Logs() channel.
    • โž• Added Consumer.Position() to retrieve the current consumer offsets.
    • The Error type now has additional attributes, such as IsRetriable() to deem if the errored operation can be retried. This is currently only exposed for the Transactional API.
    • โœ‚ Removed support for Go < 1.9

    Transactional API

    ๐Ÿš€ librdkafka and confluent-kafka-go now has complete Exactly-Once-Semantics (EOS) functionality, supporting the idempotent producer (since v1.0.0), a transaction-aware consumer (since v1.2.0) and full producer transaction support (in this release).
    This enables developers to create Exactly-Once applications with Apache Kafka.

    ๐Ÿ‘€ See the Transactions in Apache Kafka page for an introduction and check the transactions example for a complete transactional application example.

    Bundled librdkafka

    The confluent-kafka-go client now comes with batteries included, namely prebuilt versions of librdkafka for the most popular platforms, you will thus no longer need to install or manage librdkafka separately.

    ๐Ÿ‘Œ Supported platforms are:

    • Mac OSX
    • ๐Ÿง glibc-based Linux x64 (e.g., RedHat, Debian, etc) - lacks Kerberos/GSSAPI support
    • ๐Ÿง musl-based Linux x64 (Alpine) - lacks Kerberos/GSSAPI support

    ๐Ÿง These prebuilt librdkafka has all features (e.g., SSL, compression, etc) except for the Linux builds which due to libsasl2 dependencies does not have Kerberos/GSSAPI support.
    ๐Ÿ— If you need Kerberos support, or you are running on a platform where the prebuilt librdkafka builds are not available (see above), you will need to install librdkafka separately (preferably through the Confluent APT and RPM repositories) and build your application with -tags dynamic to disable the builtin librdkafka and instead link your application dynamically to librdkafka.

    librdkafka v1.4.0 changes

    ๐Ÿš€ Full librdkafka v1.4.0 release notes.


    • KIP-98: Transactional Producer API
    • KIP-345: Static consumer group membership (by @rnpridgeon)
    • KIP-511: Report client software name and version to broker
    • ๐Ÿ”’ SASL SCRAM security fixes.
  • v1.4.0-RC1

    April 08, 2020
  • v1.3.0 Changes

    December 17, 2019

    confluent-kafka-go v1.3.0

    Purge messages API (by @khorshuheng at GoJek).

    ClusterID and ControllerID APIs.

    ๐Ÿ‘ Go Modules support.

    ๐Ÿ›  Fixed memory leak on calls to NewAdminClient(). (discovered by @gabeysunda)

    Requires librdkafka v1.3.0 or later

    librdkafka v1.3.0 changes

    ๐Ÿš€ Full librdkafka v1.3.0 release notes.

    • KIP-392: Fetch messages from closest replica/follower (by @mhowlett).
    • โœ… Experimental mock broker to make application and librdkafka development testing easier.
    • ๐Ÿ›  Fixed consumer_lag in stats when consuming from broker versions < (regression in librdkafka v1.2.0).
  • v1.1.0 Changes

    July 15, 2019

    confluent-kafka-go v1.1.0

    • โœ… OAUTHBEARER SASL authentication (KIP-255) by Ron Dagostini (@rondagostino) at StateStreet.
    • ๐Ÿ“‡ Offset commit metadata (@damour, #353)
    • Requires librdkafka v1.1.0 or later

    Noteworthy librdkafka v1.1.0 changes

    ๐Ÿš€ Full librdkafka v1.1.0 release notes.

    • โœ… SASL OAUTHBEARER support (by @rondagostino at StateStreet)
    • ๐Ÿ‘ In-memory SSL certificates (PEM, DER, PKCS#12) support (by @noahdav at Microsoft)
    • ๐Ÿ”Œ Pluggable broker SSL certificate verification callback (by @noahdav at Microsoft)
    • ๐Ÿ Use Windows Root/CA SSL Certificate Store (by @noahdav at Microsoft)
    • 0๏ธโƒฃ ssl.endpoint.identification.algorithm=https (off by default) to validate the broker hostname matches the certificate. Requires OpenSSL >= 1.0.2.
    • ๐Ÿ‘Œ Improved GSSAPI/Kerberos ticket refresh

    โฌ†๏ธ Upgrade considerations

    • ๐Ÿ Windows SSL users will no longer need to specify a CA certificate file/directory (, librdkafka will load the CA certs by default from the Windows Root Certificate Store.
    • 0๏ธโƒฃ SSL peer (broker) certificate verification is now enabled by default (disable with enable.ssl.certificate.verification=false)
    • ๐Ÿ‘ %{} is no longer supported in sasl.kerberos.kinit.cmd since kinit refresh is no longer executed per broker, but per client instance.


    ๐Ÿ†• New configuration properties:

    • ssl.key.pem - client's private key as a string in PEM format
    • ssl.certificate.pem - client's public key as a string in PEM format
    • 0๏ธโƒฃ enable.ssl.certificate.verification - enable(default)/disable OpenSSL's builtin broker certificate verification.
    • 0๏ธโƒฃ enable.ssl.endpoint.identification.algorithm - to verify the broker's hostname with its certificate (disabled by default).
    • The private key data is now securely cleared from memory after last use.

    โœจ Enhancements

    • โฌ†๏ธ Bump max value from 15 minutes to 24 days (@sarkanyi)

    ๐Ÿ›  Fixes

    • SASL GSSAPI/Kerberos: Don't run kinit refresh for each broker, just per client instance.
    • SASL GSSAPI/Kerberos: Changed sasl.kerberos.kinit.cmd to first attempt ticket refresh, then acquire.
    • SASL: Proper locking on broker name acquisition.
    • ๐Ÿ“Š Consumer: now correctly handles blocking poll calls, allowing a longer poll timeout than the max poll interval.