Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/evolution-gaming/kafka-flow
library for reliable processing records received from kafka
https://github.com/evolution-gaming/kafka-flow
cats cats-effect kafka kafka-streams scala
Last synced: about 1 month ago
JSON representation
library for reliable processing records received from kafka
- Host: GitHub
- URL: https://github.com/evolution-gaming/kafka-flow
- Owner: evolution-gaming
- License: mit
- Created: 2019-08-28T19:36:59.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-10-29T12:46:36.000Z (2 months ago)
- Last Synced: 2024-10-29T14:38:38.002Z (2 months ago)
- Topics: cats, cats-effect, kafka, kafka-streams, scala
- Language: Scala
- Homepage:
- Size: 1.73 MB
- Stars: 20
- Watchers: 14
- Forks: 11
- Open Issues: 42
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# kafka-flow
[![Build Status](https://github.com/evolution-gaming/kafka-flow/workflows/CI/badge.svg)](https://github.com/evolution-gaming/kafka-flow/actions?query=workflow%3ACI)
[![Coverage Status](https://coveralls.io/repos/github/evolution-gaming/kafka-flow/badge.svg?branch=master)](https://coveralls.io/github/evolution-gaming/kafka-flow?branch=master)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/3475687f25974a57a68ea0de43098735)](https://www.codacy.com/app/evolution-gaming/kafka-flow?utm_source=github.com&utm_medium=referral&utm_content=evolution-gaming/kafka-flow&utm_campaign=Badge_Grade)
[![Version](https://img.shields.io/badge/version-click-blue)](https://evolution.jfrog.io/artifactory/api/search/latestVersion?g=com.evolutiongaming&a=kafka-flow_2.13&repos=public)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellowgreen.svg)](https://opensource.org/licenses/MIT)## 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
```scala
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 pagelibraryDependencies ++= 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 is based on Git tags and makes use of [sbt-dynver](https://github.com/sbt/sbt-dynver) to automatically obtain the version from the latest Git tag. The flow is defined in `.github/workflows/release.yml`.
A typical release process is as follows:
1. Create and push a new Git tag. The version should be in the format `vX.Y.Z` (example: `v4.1.0`). Example: `git tag v4.1.0 && git push origin v4.1.0`
2. Create a new release in GitHub. Go to the `Releases` page, click `Draft a new release`, select `Choose a tag`, pick the tag you just created
3. Press `Generate release notes`. Release title will be automatically filled with the tag name. Change the description if needed
4. Press `Publish release`