kafka-flow
kafka-flow copied to clipboard
library for reliable processing records received from kafka
kafka-flow
Microsite
https://evolution-gaming.github.io/kafka-flow
cats-effect compatibility
Starting from version 1.0.0
the library uses cats-effect 3.
For versions based on cats-effect 2 please check the latest one in 0.x.x
series
Setup
addSbtPlugin("com.evolution" % "sbt-artifactory-plugin" % "0.0.2")
lazy val version = "4.1.0" // For cats-effect 3 - compatible version, see the latest one in the badge above
// or in Releases page
// lazy val version = "0.12.0" // For cats-effect 2 - compatible version, see the latest one in 'series-0.x.x' branch or in Releases page
libraryDependencies ++= Seq(
"com.evolutiongaming" %% "kafka-flow" % version,
// if you want to use Cassandra for storing persistent state
"com.evolutiongaming" %% "kafka-flow-persistence-cassandra" % version,
// if you want to use Kafka compact topic for storing persistent state
"com.evolutiongaming" %% "kafka-flow-persistence-kafka" % version,
// if you want to use predefined metrics
"com.evolutiongaming" %% "kafka-flow-metrics" % version
)
Release process
The release process makes use of https://github.com/evolution-gaming/scala-github-actions that runs
tests and ensures proper publishing with the required credentials via GitHub Actions.
The flow is defined in .github/workflows/release.yml
.
A typical release process is as follows:
- Update version in
version.sbt
to the target one. Example: current version is4.0.0
and you want to publish4.1.0
. Updateversion.sbt
to4.1.0
. - Push changes to the repository. Do not make a new tag manually.
- Create a new release in GitHub. Go to the
Releases
page, clickDraft a new release
, select "Choose a tag", enter the target version in a formatvX.Y.Z
(example:v4.1.0
). - Press
Generate release notes
. Release title will be automatically filled with the tag name. Change the description if needed. - Press
Publish release
. The build will be triggered automatically, it will run the tests and publish the target release.