Alpakka Kafka 1.0-RC1
Released 2018-12-11
First release candidate for Alpakka Kafka 1.0
On this Road to Alpakka 1.0 we may introduce non-compatible API changes. From version 1.0 Alpakka will stay binary-compatible between minor releases.
Having that said, Alpakka Kafka will start to make use of the @ApiMayChange
annotation to keep the door open for API changes, so that new feature API can evolve more rapidly than other parts of Alpakka Kafka.
Highlights in this release
-
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.
Improved documentation
-
All examples now use the
Committer
instead ofcommitJavadsl
/commitScaladsl
. -
Most examples now show the use of
DrainingControl
. -
The Java examples shown in the documentation are now run in the tests #665.
-
Show transitive dependencies in the documentation #657
Everything done in this release is in the 1.0-RC1 milestone.
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 |
---|---|---|---|
40 | 2630 | 1979 | |
17 | 326 | 282 | |
2 | 14 | 10 | |
1 | 21 | 241 | |
John Clara | 1 | 20 | 6 |
1 | 6 | 5 | |
1 | 1 | 1 |