Giter Site home page Giter Site logo

tryfix / kstream Goto Github PK

View Code? Open in Web Editor NEW
42.0 4.0 15.0 218 KB

Apache Kafka Streams for Golang

Home Page: https://github.com/tryfix/kstream

License: MIT License

Go 100.00%
kafka-streams stream-topologies golang golang-library kafka-clients kafka-consumer kafka-producer

kstream's Introduction

KStream - Kafka Streams for Golang

Godoc build Coverage Releases Go Report Card LICENSE

KStream is a light-weight implementation of kafka streams. It is heavily inspired by Kafka-Streams(Java) library. KStream implements features like Internal Stores, Remote Stores, Local Tables, Global Tables and it guarantees Exactly Once Processing with its de-duplicator. It can process message as micro batches or one by one depending on the throughput required. KStream can handle good amount of throughput (50,000 messages pe second with micro batch enabled) in a fault tolerable manner with a very minimal amount of latency (2 ~ 5 ms)

Project uses two external libraries sarama for consumers and producers

Stream Components

Stream Topology

Stream Topology is a set of processor nodes typically starts with a source node and ends with a sink node

Stream Builder

Stream builder is responsible for building stream topologies into kafka streams with their dependencies like changelog topics, re-partition topics, etc...

KStream

KStream is a regular kafka stream which takes an input topic as an upstream and process the record stream to another kafka topic(downstream topic) It supports several functions like transforming, merging to another stream, joins with other streams etc.

KTable

@TODO

Global KTable

Global KTable also a KTable except for is each instance of the application has its own copy of all the partitions and it will be running on a separate thread so applications dose'nt have to worry about handling failures.

Store

Store is a pluggable local key-val store which is used by KTable, Global KTable and other oparations like joins, merges and removing duplicates.

Store Backend

Store is a pluggable local key-val store which is used by KTable, Global KTable and other oparations like joins, merges and removing duplicates.

RPC layer for Store

@TODO

Key discovery service

@TODO

kstream's People

Contributors

gmbyapa avatar senpathi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

kstream's Issues

Filter Process return next false

When there is a filter process and filter func returns false, then other child streams in the parent's stream not running because filter process returns next = false.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.