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).