{"repo":"nomisRev/kotlin-kafka","free":true,"listed":false,"github":"https://github.com/nomisRev/kotlin-kafka","clone":"git clone https://github.com/nomisRev/kotlin-kafka.git","description":"Kafka bindings for Kotlin `suspend`, and Kafka streaming operators for KotlinX Flow.","language":"Kotlin","stars":125,"topics":["hacktoberfest","kafka","kafka-client","kafka-consumer","kafka-producer","kotlin","kotlin-coroutines","kotlinx-coroutines","reactive","streaming"],"license":"Apache-2.0","category":"data-pipelines","readme_excerpt":"Module kotlin-kafka Rationale Goals Adding Dependency Example Rationale At the time of starting this repository I didn't find any bindings between Kafka SDK and Kotlin suspension, or KotlinX Coroutines Flow. These operators should be implemented low-level, so they can guarantee correct cancellation support, and high optimised runtimes. Some important aspects of Kafka are tricky to implement with the \"low-level\" Kafka API, especially properly streaming records from Kafka and correctly committing them. Additional complexity is involved in this process, more details here. To solve these problems, a couple of projects in the JVM already exist: - Alpakka Kafka - reactor-kafka - now deprecated - fs2-kafka This project implements the same strategies as [reactor-kafka] directly on top of KotlinX Coroutines to benefit from all their benefits, and to open the door to potentially becoming a Kotlin MPP library in the future. Goals - Lean Core library built on top of Kotlin Std & KotlinX Coroutines - Extensions to easily operate over the Kafka SDK with KotlinX Coroutines and suspend . - Flow based operators, so you can easily compose KotlinX Flow based Kafka programs - Strong guarantees about committing record offsets, and performance optimisations in regard to re-balancing/partitioning. - example for testing Kafka with Test Containers in Kotlin. Adding Dependency Simply add the following dependency as implementation in the build.gradle dependencies block. Example You can get the full cod","default_branch":null,"files":null,"tree":[],"storefront":"/r/nomisRev","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/nomisRev/kotlin-kafka/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}