Skip to content

Releases: IBM/sarama

Version 1.10.0 (2016-08-02)

02 Aug 12:50
Compare
Choose a tag to compare

Important: As of Sarama 1.10 it is necessary to tell Sarama the version of
Kafka you are running against (via the config.Version value) in order to use
features that may not be compatible with old Kafka versions. If you don't
specify this value it will default to 0.8.2 (the minimum supported), and trying
to use more recent features (like the offset manager) will fail with an error.

Also: The offset-manager's behaviour has been changed to match the upstream
java consumer (see #705 and #713). If you use the offset-manager, please ensure
that you are committing one greater than the last consumed message offset or else
you may end up consuming duplicate messages.

New Features:

  • Support for Kafka 0.10
    (#672,
    #678,
    #681, and others).
  • Support for configuring the target Kafka version
    (#676).
  • Batch producing support in the SyncProducer
    (#677).
  • Extend producer mock to allow setting expectations on message contents
    (#667).

Improvements:

  • Support nil compressed messages for deleting in compacted topics
    (#634).
  • Pre-allocate decoding errors, greatly reducing heap usage and GC time against
    misbehaving brokers (#690).
  • Re-use consumer expiry timers, removing one allocation per consumed message
    (#707).

Bug Fixes:

  • Actually default the client ID to "sarama" like we say we do
    (#664).
  • Fix a rare issue where Client.Leader could return the wrong error
    (#685).
  • Fix a possible tight loop in the consumer
    (#693).
  • Match upstream's offset-tracking behaviour
    (#705).
  • Report UnknownTopicOrPartition errors from the offset manager
    (#706).
  • Fix possible negative partition value from the HashPartitioner
    (#709).

Version 1.9.0 (2016-05-16)

16 May 18:25
Compare
Choose a tag to compare

New Features:

  • Add support for custom offset manager retention durations
    (#602).
  • Publish low-level mocks to enable testing of third-party producer/consumer
    implementations (#570).
  • Declare support for Golang 1.6
    (#611).
  • Support for SASL plain-text auth
    (#648).

Improvements:

  • Simplified broker locking scheme slightly
    (#604).
  • Documentation cleanup
    (#605,
    #621,
    #654).

Bug Fixes:

  • Fix race condition shutting down the OffsetManager
    (#658).

Version 1.8.0 (2016-02-01)

01 Feb 15:15
Compare
Choose a tag to compare

New Features:

  • Full support for Kafka 0.9:
    • All protocol messages and fields
      (#586,
      #588,
      #590).
    • Verified that TLS support works
      (#581).
    • Fixed the OffsetManager compatibility
      (#585).

Improvements:

  • Optimize for fewer system calls when reading from the network
    (#584).
  • Automatically retry InvalidMessage errors to match upstream behaviour
    (#589).

Version 1.7.0 (2015-12-11)

11 Dec 14:59
Compare
Choose a tag to compare

New Features:

  • Preliminary support for Kafka 0.9
    (#572). This comes with several
    caveats:
    • Protocol-layer support is mostly in place
      (#577), however Kafka 0.9
      renamed some messages and fields, which we did not in order to preserve API
      compatibility.
    • The producer and consumer work against 0.9, but the offset manager does
      not (#573).
    • TLS support may or may not work
      (#581).

Improvements:

  • Don't wait for request timeouts on dead brokers, greatly speeding recovery
    when the TCP connection is left hanging
    (#548).
  • Refactored part of the producer. The new version provides a much more elegant
    solution to #449. It is also
    slightly more efficient, and much more precise in calculating batch sizes
    when compression is used
    (#549,
    #550,
    #551).

Bug Fixes:

  • Fix race condition in consumer test mock
    (#553).

Version 1.6.1 (2015-09-25)

25 Sep 17:41
Compare
Choose a tag to compare

Bug Fixes:

  • Fix panic that could occur if a user-supplied message value failed to encode
    (#449).

Version 1.6.0 (2015-09-04)

04 Sep 14:52
Compare
Choose a tag to compare

New Features:

  • Implementation of a consumer offset manager using the APIs introduced in
    Kafka 0.8.2. The API is designed mainly for integration into a future
    high-level consumer, not for direct use, although it is possible to use it
    directly.
    (#461).

Improvements:

  • CRC32 calculation is much faster on machines with SSE4.2 instructions,
    removing a major hotspot from most profiles
    (#255).

Bug Fixes:

  • Make protocol decoding more robust against some malformed packets generated
    by go-fuzz (#523,
    #525) or found in other ways
    (#528).
  • Fix a potential race condition panic in the consumer on shutdown
    (#529).

Version 1.5.0 (2015-08-17)

17 Aug 14:47
Compare
Choose a tag to compare

New Features:

  • TLS-encrypted network connections are now supported. This feature is subject
    to change when Kafka releases built-in TLS support, but for now this is
    enough to work with TLS-terminating proxies
    (#154).

Improvements:

  • The consumer will not block if a single partition is not drained by the user;
    all other partitions will continue to consume normally
    (#485).
  • Formatting of error strings has been much improved
    (#495).
  • Internal refactoring of the producer for code cleanliness and to enable
    future work (#300).

Bug Fixes:

  • Fix a potential deadlock in the consumer on shutdown
    (#475).

Version 1.4.3 (2015-07-21)

21 Jul 13:26
Compare
Choose a tag to compare

Bug Fixes:

  • Don't include the partitioner in the producer's "fetch partitions"
    circuit-breaker (#466).
  • Don't retry messages until the broker is closed when abandoning a broker in
    the producer (#468).
  • Update the import path for snappy-go, it has moved again and the API has
    changed slightly (#486).

Version 1.4.2 (2015-05-27)

27 May 13:31
Compare
Choose a tag to compare

Bug Fixes:

  • Update the import path for snappy-go, it has moved from google code to github
    (#456).

Version 1.4.1 (2015-05-25)

25 May 15:21
Compare
Choose a tag to compare

Improvements:

  • Optimizations when decoding snappy messages, thanks to John Potocny
    (#446).

Bug Fixes:

  • Fix hypothetical race conditions on producer shutdown
    (#450,
    #451).