Skip to content

Releases: typelevel/fs2-kafka

v4.0.0

04 May 08:56
v4.0.0
4004881

Choose a tag to compare

Both the fs2-kafka and vulcan projects have now moved to the Typelevel GitHub organization.
Thanks a lot to @armanbilge for all the help in getting these projects setup in their new home.

⚠️ For v4.x of fs2-kafka, the artifacts are now published under the org.typelevel organization.

libraryDependencies += "org.typelevel" %% "fs2-kafka" % "4.0.0"

Apart from the Java Kafka client upgrade from 3.x to 4.2, the biggest changes in fs2-kafka v4.x include the following.

  • A redesign of CommittableOffset and CommittableOffsetBatch in #1471.
    • These are now safe by construction, supporting multiple consumers, and handle out-of-order offsets.
  • A greatly simplified version of transactional producers by @cmcmteixeira in #1481.
  • Also thanks to @cmcmteixeira, the KafkaAdminClient has gotten a lot more methods in #1482.

What's Changed

  • Prepare for 4.x release with updates by @vlovgr in #1469
  • Drop sealed requirement on KafkaProducerConnection by @calvinlfer in #1202
  • Change to merge versioned binary-compatibility traits by @vlovgr in #1470
  • Change CommitTimeoutException to be a RetriableCommitFailedException by @vlovgr in #1472
  • Update vulcan to 1.13.0 by @vlovgr in #1473
  • Redesign CommittableOffset and CommittableOffsetBatch by @vlovgr in #1471
  • Change Timestamp to provide value and type by @vlovgr in #1474
  • Change to Typelevel organization by @vlovgr in #1475
  • Update sbt, scripted-plugin to 1.12.9 by @typelevel-steward[bot] in #1476
  • Update scalafmt-core to 3.10.7 by @typelevel-steward[bot] in #1477
  • Merge KafkaProducer traits for binary compatibility by @vlovgr in #1480
  • Feat/merge transactional regular producer by @cmcmteixeira in #1481
  • Exposed new methods from the underlying kafka admin client through th… by @cmcmteixeira in #1482
  • Update munit, munit-diff to 1.3.0 by @typelevel-steward[bot] in #1483
  • Update scalafmt-core to 3.11.0 by @typelevel-steward[bot] in #1484

New Contributors

Full Changelog: v3.9.1...v4.0.0

v4.0.0-RC2

14 Apr 08:31
v4.0.0-RC2
3d9f80d

Choose a tag to compare

Thanks to @cmcmteixeira we've greatly simplified transactional producers. (#1481)
The transactions documentation has been updated and following are migration notes.

  • TransactionalKafkaProducer, TransactionalProducerSettings, and KafkaProducerConnection have been removed.
    • The functionality from TransactionalKafkaProducer is now available on KafkaProducer instead.
      • The TransactionalKafkaProducer#produce method exists as KafkaProducer#produceAndCommitTransactionally.
      • The TransactionalKafkaProducer#produceWithoutOffsets method exists as KafkaProducer#produceTransactionally.
    • The following methods have been added to ProducerSettings.
      • The ProducerSettings#withTransactionId method sets the transactional.id property.
      • The ProducerSettings#withTransactionTimeout methods sets the transaction.timeout.ms property.
    • The KafkaProducerConnection#withSerializers method is available as KafkaProducer#withSerializers instead.
  • Add KafkaProducer.transactional and transactionalStream to automatically initialize the producer for transactions.
  • Add the following functions to KafkaProducer for more manual control of transactions.
    • KafkaProducer#initTransactions for initializing the producer for transactions.
      • This will be called automatically when using KafkaProducer.transactional or transactionalStream.
    • KafkaProducer#transaction for managing a transaction through a Resource.
      • Note the deadlock when opening a second transaction within a first transaction.
    • KafkaProducer#sendOffsetsToTransaction for including offset commits in a transaction.
      • Add KafkaConsumer#groupMetadata to support KafkaProducer#sendOffsetsToTransaction.
      • The method is also available in the consumer traits as KafkaSubscription#groupMetadata.
  • The KafkaProducer.Metrics and KafkaProducer.PartitionsFor traits have merged into KafkaProducer. (#1480)
    • If you had references to these traits, then change these to KafkaProducer instead.

Also thanks to @cmcmteixeira, the KafkaAdminClient has gotten a lot more methods. (#1482)

⚠️ Please note this release does not maintain binary or source compatibility with v4.0.0-RC1.

There are no further changes planned for v4.0.0. Please give the release candidate a try and if no issues are encountered, it will become the final v4.0.0 release.

What's Changed

  • Update sbt, scripted-plugin to 1.12.9 by @typelevel-steward[bot] in #1476
  • Update scalafmt-core to 3.10.7 by @typelevel-steward[bot] in #1477
  • Merge KafkaProducer traits for binary compatibility by @vlovgr in #1480
  • Feat/merge transactional regular producer by @cmcmteixeira in #1481
  • Exposed new methods from the underlying kafka admin client through th… by @cmcmteixeira in #1482

New Contributors

  • @typelevel-steward[bot] made their first contribution in #1476
  • @cmcmteixeira made their first contribution in #1481

Full Changelog: v4.0.0-RC1...v4.0.0-RC2

v4.0.0-RC1

06 Apr 18:50
v4.0.0-RC1
0636279

Choose a tag to compare

Both the fs2-kafka and vulcan projects have now moved to the Typelevel GitHub organization.
Thanks a lot to @armanbilge for all the help in getting these projects setup in their new home.

⚠️ For v4.x of fs2-kafka, the artifacts are now published under the org.typelevel organization.

libraryDependencies += "org.typelevel" %% "fs2-kafka" % "4.0.0-RC1"

Apart from the Java Kafka client upgrade from 3.x to 4.2, the biggest change in fs2-kafka v4.x is a redesign of CommittableOffset and CommittableOffsetBatch in #1471. These are now safe by construction, supporting offsets from multiple consumers and are also handling out-of-order offsets.

Please give the release candidate a try and if no issues are encountered, it will become the final v4.0.0 release.

What's Changed

  • Prepare for 4.x release with updates by @vlovgr in #1469
  • Drop sealed requirement on KafkaProducerConnection by @calvinlfer in #1202
  • Change to merge versioned binary-compatibility traits by @vlovgr in #1470
  • Change CommitTimeoutException to be a RetriableCommitFailedException by @vlovgr in #1472
  • Update vulcan to 1.13.0 by @vlovgr in #1473
  • Redesign CommittableOffset and CommittableOffsetBatch by @vlovgr in #1471
  • Change Timestamp to provide value and type by @vlovgr in #1474
  • Change to Typelevel organization by @vlovgr in #1475

New Contributors

Full Changelog: v3.9.1...v4.0.0-RC1

v3.9.1

24 Oct 08:52
v3.9.1
bc8f95d

Choose a tag to compare

What's Changed

Full Changelog: v3.9.0...v3.9.1

v3.9.0

01 Aug 13:31
v3.9.0
63478cc

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v3.8.0...v3.9.0

v3.8.0

26 May 20:19
v3.8.0
b42325f

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v3.7.0...v3.8.0

v3.7.0

02 Apr 18:48
v3.7.0
37f2d8b

Choose a tag to compare

There was an issue earlier today which prevented v3.7.0 from being released properly.
The issue has now been fixed. Please enjoy the original release notes by @aartigao.


This release includes internal changes to KafkaConsumer brought by @biochimia and @rodrigo-molina (thank you very much for your contributions! 🎉 ) as well as some bug fixes (welcome @ex-ratt and @eugkhp as new collaborators 🫂).

We've released two candidates that, after running some time in our production systems, we think we're in safe position for a new release 🥳 🚀

What's Changed

New Contributors

Full Changelog: v3.6.0...v3.7.0

fs2-kafka v3.7.0-RC2

28 Mar 06:37
cf7e0c9

Choose a tag to compare

fs2-kafka v3.7.0-RC2 Pre-release
Pre-release

What's Changed

Full Changelog: v3.7.0-RC1...v3.7.0-RC2

fs2-kafka v3.7.0-RC1

15 Mar 19:36
ed7716b

Choose a tag to compare

fs2-kafka v3.7.0-RC1 Pre-release
Pre-release

This is a pre-release for testing internal changes around KafkaConsumer introduced by @biochimia / @rodrigo-molina.

What's Changed

New Contributors

Full Changelog: v3.6.0...v3.7.0-RC1

fs2-kafka v3.6.0

19 Nov 10:35
182e028

Choose a tag to compare

It's been a while since v3.6.0-RC1 was released for the community to test and I think we're in a safe position for a new release 🚀

Most of the changes included here are dependency updates but the most important feature is the changes around KafkaProducer fail-fast scenarios (thanks @rodrigo-molina for your contribution! 🎉) and the bump of Scala versions.

What's Changed

New Contributors

Full Changelog: v3.5.1...v3.6.0