Reputation: 9219
I'm trying to use golang to create a kafka stream client in Go. From what I have seen this is only possible if using a Java Client. I did a bit of searching and found a few other third party libraries but nothing official. Also from my limited understanding I think streams is syntactic sugar over the standard consumers ? is this correct ?
Upvotes: 3
Views: 9931
Reputation: 1717
When using standard Consumer and Producer directly, it lacks support for such as the following:
Goka [https://github.com/lovoo/goka] is now a relatively active project for Kafka Streams golang support.
Upvotes: 1
Reputation: 2342
To answer your this particular question,
Also from my limited understanding I think streams is syntactic sugar over the standard consumers ? is this correct?
When implementing asynchronous microservices, we could use producer and consumer APIs but these APIs are too low level, they were good to understand how to use Kafka, but if we want to implement more complex applications, they might be too low level. Also, when we develop event‑driven applications, we might need to implement multistage processing when we would connect multiple stages. At each stage, we will read events from Kafka, process them, and write to output topics. Again, using producer and consumer APIs would be quite a lot of work. And one of the more high‑level solutions we can use is called Kafka Streams. Kafka Streams is a very versatile library, it supports stateless stream processing and it also supports stateful processing.
Note: And if you have the option of working with a language other than Go, I would highly recommend working with Java for Kafka Streams. Just to mention here we have been working with Kafka Streams using Java for the last two years and we have felt Kafka Streams is more of a Java library than a distributed system.
Upvotes: 0