Alpakka Kafka 1.0-RC2

Released 2019-02-21

Second release candidate for Alpakka Kafka 1.0

We’re now reaching the end of the Road to Alpakka 1.0 and are very close to finish things up in both the main Alpakka project and Alpakka Kafka. From version 1.0 Alpakka will stay binary-compatible between minor releases.

We do not expect any further changes before releasing Alpakka Kafka 1.0 final!

Highlights in this release

Everything done in this release is in the 1.0-RC2 milestone.

Other highlights already in RC1

  • Use Kafka client 2.x poll API #614, investigated by @zaharidichev

  • No more WakeupException! The Kafka client API 2.x allows for specifying a timeout when polling the Kafka broker, thus we do not need to use the cranky tool of Kafka’s WakeupExceptions to be sure not to block a precious thread. The settings to configure wake-ups are not used anymore.

  • Upgrade to Kafka client 2.1.0 #660. This upgrade makes it possible to use of the zstandard compression (with Kafka 2.1 brokers).

  • Consumer shutdown is now delayed by stop-timeout (default 30 s) #673. This is especially relevant for committable partitioned sources as the stage needs to stay alive until committing has finished (reported in #672).

  • API Change: Alpakka Kafka consumers don’t fail for non-responding Kafka brokers anymore (as they used to to after a number of WakeupExceptions). To get the connectivity check back #674 suggests a possible way forward.

  • API Change: Standardised on spelling of committable in Producer.committableSink (Producer.commitableSink will be kept around throughout 1.0.x, but those methods are deprecated now) #645

  • New Committer.flow for standardised committing within a continuing flow #644

  • API Change: The response to the metadata request GetCommittedOffset now contains the TopicPartition #626 by @giftig.

  • API Change: Manual subscriptions (Subscriptions.assignment, assignmentWithOffset, assignmentOffsetsForTimes) do not allow setting a rebalance listener anymore (methods deprecated). Rebalancing does not occur for those #639.

  • Improvements to the new testkit #656, initiated by @johnclara’s work with the admin clients.

  • Continuous integration builds are now run against Adopt OpenJDK 8 and 11 #641.

Other Highlights already in M1

  • New Committer.sink for standardised committing #622 by @rtimush

  • Commit with metadata #563 and #579 by @johnclara

  • Factored out akka.kafka.testkit for internal and external use: see Testing

  • Support for merging commit batches #584 by @rtimush

  • Reduced risk of message loss for partitioned sources #589

  • Expose Kafka errors to stream #617

  • Java APIs for all settings classes #616

  • Much more comprehensive tests

General information

This release is compiled and tested against Akka 2.5 and Scala 2.11 and 2.12.

This release was made possible by new and earlier contributors:

Author Commits Lines added Lines removed
ennru ennru 10 818 574
2m 2m 5 18 8
Philippus Philippus 3 135 129
charlibot charlibot 2 11 7
bmaggi bmaggi 1 19 12
francescopellegrini francescopellegrini 1 5 0
francescoditrani francescoditrani 1 1 1
fdeantoni fdeantoni 1 1 1
Found an error in this documentation? The source code for this page can be found here. Please feel free to edit and contribute a pull request.