KStream is a kafka streams implementation written in Golang. It is heavily influenced by Kafka-Streams(Java) library and includes features such as Streams, Tables, State Stores, EOS support, and so on.
- Streams: Leverage the streaming capabilities of KStream to process and transform data in real-time.
- Tables: Utilize tables to perform aggregations, joins, and other advanced operations on the data streams.
- State Stores: Benefit from built-in state stores for efficient storage and retrieval of stream data.
- EOS Support: Enjoy the reliability of exactly-once semantics with KStream's support for EOS.
DSL | |
---|---|
Branch | Supported(Split Example ) |
Filter | Supported |
Inverse Filter | Not Supported |
FlatMap | Supported |
FlatMap (values only) | Supported(Word Count Example) |
Peek | Not Supported(Use Each instead) |
Foreach | Supported(Word Count Example) |
Map | Supported |
Map (values only) | Supported |
Merge | Supported |
SelectKey | Supported(Word Count Example) |
Repartition | Supported |
Table to Stream | Supported(Word Count Example) |
Stream to Table | Supported(Word Count Example) |
Aggregate | Supported(Word Count Example) |
GroupBy | Not Supported |
GroupByKey | Not Supported |
Aggregate (windowed) | Not Supported |
Cogroup | Not Supported |
Please refer https://kafka.apache.org/20/documentation/streams/developer-guide/dsl-api.html#joining
Join | |
---|---|
KTable-to-KTable | Supported |
KStream-to-KTable | Supported |
KStream-to-GlobalKTable | Supported |
KTable-to-KTable Foreign-Key Join | Supported(Using lookup functions) |
KTable-to-GlobalKTable | Not Supported |
KStream-to-KStream | Not Supported |
To get started with KStream, follow these steps:
- Install librdkafka(https://github.com/confluentinc/librdkafka#installation).