All Versions
18
Latest Version
Avg Release Cycle
95 days
Latest Release
-

Changelog History
Page 2

  • 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 <0.11.0.0 (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 (ssl.ca.location), 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)
    • ๐Ÿ‘ %{broker.name} is no longer supported in sasl.kerberos.kinit.cmd since kinit refresh is no longer executed per broker, but per client instance.

    SSL

    ๐Ÿ†• 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 message.timeout.ms 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: max.poll.interval.ms now correctly handles blocking poll calls, allowing a longer poll timeout than the max poll interval.
  • v1.1.0-RC1

    July 15, 2019
  • v1.0.0 Changes

    March 29, 2019

    confluent-kafka-go v1.0.0

    ๐Ÿš€ This release adds support for librdkafka v1.0.0, featuring the EOS Idempotent Producer, Sparse connections, KIP-62 - max.poll.interval.ms support, zstd, and more.

    ๐Ÿš€ See the librdkafka v1.0.0 release notes for more information and upgrade considerations.

    Go client enhancements

    • Now requires librdkafka v1.0.0.
    • A new IsFatal() function has been added to KafkaError to help the application differentiate between temporary and fatal errors. Fatal errors are currently only triggered by the idempotent producer.

    - โž• Added kafka.NewError() to make it possible to create error objects from user code / unit test (Artem Yarulin)

    ๐Ÿ›  Go client fixes

    • ๐Ÿ”ง Deprecate the use of default.topic.config. Topic configuration should now be set on the standard ConfigMap.
    • Reject delivery.report.only.error=true on producer creation (#306)
    • ๐Ÿ—„ Avoid use of "Deprecated: " prefix (#268)
    • PartitionEOF must now be explicitly enabled thru enable.partition.eof

    Make sure to check out the Idempotent Producer example

  • v1.0.0-RC1

    March 27, 2019
  • v0.11.6 Changes

    October 25, 2018

    Admin API

    ๐Ÿš€ This release adds support for the Topic Admin API (KIP-4):

    • Create and delete topics
    • Increase topic partition count
    • ๐Ÿ”ง Read and modify broker and topic configuration
    • Requires librdkafka >= v0.11.6

      results, err := a.CreateTopics( ctx, // Multiple topics can be created simultaneously// by providing additional TopicSpecification structs here. []kafka.TopicSpecification{{ Topic: "mynewtopic", NumPartitions: 20, ReplicationFactor: 3}})

    More examples.

    ๐Ÿ›  Fixes and enhancements

    • ๐Ÿ”ง Make sure plugins are set before other configuration options (#225, @dtheodor)
    • ๐Ÿ›  Fix metadata memory leak
    • ๐Ÿ‘ฏ Clone config before mutating it in NewProducer and NewConsumer (@vlad-alexandru-ionescu)
    • Enable Error events to be emitted from librdkafka errors, e.g., ErrAllBrokersDown, et.al (#200)
  • v0.11.4 Changes

    March 28, 2018

    Announcements

    ๐Ÿš€ This release drops support for Golang < 1.7

    Requires librdkafka v0.11.4 or later

    ๐Ÿ‘ Message header support

    ๐Ÿ‘Œ Support for Kafka message headers has been added (requires broker version >= v0.11.0).

    When producing messages, pass a []kafka.Header list:

    err = p.Produce(&kafka.Message{ TopicPartition: kafka.TopicPartition{Topic: &topic, Partition: kafka.PartitionAny}, Value: []byte(value), Headers: []kafka.Header{{"myTestHeader", []byte("header values are binary")}}, }, deliveryChan)
    

    Message headers are available to the consumer as Message.Headers:

    msg, err := c.ReadMessage(-1) if err != nil { fmt.Printf("%% Consumer error: %v\n", err) continue } fmt.Printf("%% Message on %s:\n%s\n", msg.TopicPartition, string(msg.Value)) if msg.Headers != nil { fmt.Printf("%% Headers: %v\n", msg.Headers) }
    

    โœจ Enhancements

    • ๐Ÿ‘ Message Headers support
    • Close event channel when consumer is closed (#123 by @czchen)
    • โž• Added ReadMessage() convenience method to Consumer
    • ๐Ÿ”ง producer: Make events channel size configurable (@agis)
    • โž• Added Consumer.StoreOffsets() (#72)
    • โž• Added ConfigMap.Get() (#26)
    • โž• Added Pause() and Resume() APIs
    • โž• Added Consumer.Committed() API
    • โž• Added OffsetsForTimes() API to Consumer and Producer

    ๐Ÿ›  Fixes

    • ๐Ÿง Static builds should now work on both OSX and Linux (#137, #99)
    • โšก๏ธ Update error constants from librdkafka
    • 0๏ธโƒฃ Enable produce.offset.report by default (unless overriden)
    • ๐Ÿšš move test helpers that need testing pkg to _test.go file (@gwilym)
    • ๐Ÿ— Build and run-time checking of librdkafka version (#88)
    • โœ‚ Remove gotos (@jadekler)
    • ๐Ÿ›  Fix Producer Value&Key slice referencing to avoid cgo pointer checking failures (#24)
    • ๐Ÿ›  Fix Go 1.10 build errors (drop pkg-config --static ..)