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
-
Expose consumer and producer factories as API #719 by @charlibot and #710 by Benoit Maggi, @bmaggi
-
Keep to the commit refresh deadlines per partition #701 by Philippus Baalman, @Philippus
-
Testkit support for JUnit 5 and use of sbt-jupiter-interface internally #691 (with great support by Michael Aichler, @maichler)
-
Upgrade to Akka 2.5.21 #720
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’sWakeupException
s 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
WakeupException
s). To get the connectivity check back #674 suggests a possible way forward. -
API Change: Standardised on spelling of
committable
inProducer.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 theTopicPartition
#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 -
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 |
---|---|---|---|
10 | 818 | 574 | |
5 | 18 | 8 | |
3 | 135 | 129 | |
2 | 11 | 7 | |
1 | 19 | 12 | |
1 | 5 | 0 | |
1 | 1 | 1 | |
1 | 1 | 1 |