Confluent Kafka Golang Client v1.4.0 Release Notes

Release Date: 2020-04-08 // over 2 years ago
  • 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.

    Highlights:

    • 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.