These are chat archives for RBMHTechnology/eventuate

Jul 2016
Gabriel Giussi
Jul 25 2016 02:09

Hello everyone, I want to ask you what will be a good usage of Kafka as storage backend for Eventuate? Someone has a use case already?
I was interested in Kafka because it can work as an Event Bus, allowing me to persist an event and publish it to the event bus in an atomic operation. So Kafka would be acting as the storage backend for my eventuate-based microservices and the mechanism to communicate the different microservices as well.
However, I kept reading eventuate documentation until I finally realize that Eventuate is Akka on steroids: it not only allows AP, it also gives you the event bus with a lot of features.

These actors can be considered as event-driven and event-sourced microservices, collaborating on a causally ordered event stream in a reliable and partition-tolerant way. Furthermore, when partitioned, they remain available for local writes and automatically catch up with their collaborators when the partition heals.

The only constraint is that all our microservices must be eventuate-based (*), so I think that if we want to communicate a bunch of polyglot microservices, it might be a good use case for Kafka as storage backend.

In other words, what semantics or features gives us Kafka as storage backend different to what already gives us Cassandra, e.g fault-tolerance and high availability?
I've already read How can Apache Kafka be integrated with Eventuate? but it doesn't give me a good reason to use it over Cassandra.

(*) With this I mean that we need use scala or java with the eventuate library in all of our microservices and at least one EventsourcedProcessor who invoke the corresponding API method of the microservice.

Volker Stampa
Jul 25 2016 06:35
I do not think there is anything wrong with using Cassandra in your case. If you prefer one over the other probably depends more on your existing environment and other non-eventuate applications that are using this infrastructure than on eventuate itself. But @helena started working on the RBMHTechnology/eventuate#206 so maybe she could elaborate on this a little more.