Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Goka – distributed stream processing library for Kafka written in Go (github.com/lovoo)
105 points by flosch on May 17, 2017 | hide | past | favorite | 10 comments



Anyone interested in this should check out Uber's Cherami, which has support for go, java and python:

http://eng.uber.com/cherami/

https://github.com/uber?utf8=%E2%9C%93&q=cherami&type=&langu...

It supports consumption of kafka topics:

https://github.com/uber/cherami-server/commit/226fb2c55b7c51...


Why would anyone want to use this over Kafka Streams? Seems a lot more verbose.


Perhaps because they would like to call into code written in Go.


No Kafka Streams for Go yet.


re: yet

Is the work in progress? If so, please tell us where.


As I remember, they said that tgey want to stabilize API before adding support for new languages


Goka is not a replacement for Kafka Streams, they can be used together. For example, you can use streams and tables created with Kafka Streams inside services built with Goka.


How does this compare with https://github.com/movio/kasper ?


There are several differences. Here are some of them.

- Kasper is micro-batched, Goka consumes one message at a time.

- Kasper requires a centralized state storage (such as Redis or ElasticSearch), Goka only depends on Kafka: processors persist their state (key-value tables) in a compacted topic in Kafka. That is really nice because processors can then join streams with tables of other processors.

- Kasper statically assigns partitions to processors. Goka automatically splits the input and state partitions among processors.

- By default Goka employs sarama and sarama-cluster libraries to access Kafka, but that can be easily replaced with Confluent's go library. Similarly, the local storage is by default LevelDB, but can be replaced even with some remote storage if necessary.


Happy to see a Go alternative.. Good job OP




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: