These are chat archives for RBMHTechnology/eventuate

31st
Aug 2015
Martin Krasser
@krasserm
Aug 31 2015 04:44

With Akka Persistence the obvious advantage with Cassandra was the replication, but with Eventuate that is already built in.

Replication in backend stores and replication between locations in Eventuate serve completely different purposes. Replication in backend stores is only for stronger durability of events and is achieved via synchronous replication e.g. writes are acknowledged only after an event has been successfully written to two or more nodes. Replication between locations (= availability zones) in Eventuate is for higher write-availability at multiple locations (multi-master) and is achieved via asynchronous replication. Hence, it cannot be used for stronger durability of events and should be combined with a replicated storage backend at each location, if required. From this perspective, usage of Akka Persistence and Eventuate within a single location is comparable regarding event replication in backend stores. Eventuate additionally provides asynchronous event replication across locations so that event-sourced actor state is writable at multiple locations, even during inter-location network partitions.

I wouldn't really recommend using leveldb in prod

We only recommend LevelDB for production for short-term storage of events, so that applications can create new LevelDB instances on local disk at regular intervals and discard old ones. In Eventuate, events written to LevelDB can anyway be replicated to other locations (with a Cassandra storage backend) for long-term storage, if needed.

Is there an extension point in the cassandra event journal where I can customize how queries are made to the event log?

We will soon provide adapters for several stream processing solutions, starting with Akka Streams (most likely). In this context, a similar query API like in Akka 2.4 will be provided. Additionally, Eventuate will guarantee a causal ordering of events delivered to all stream processing adapters.

Magnus Andersson
@magnusart
Aug 31 2015 06:28

@krasserm very clear answer as always.

synchronous vs asynchronous

Ah, yes of course, that makes sense.

We only recommend LevelDB for production for short-term storage of events...

Interesting. I didn’t consider mixing stores across event logs. Not sure if I’d go down that route myself.

We will soon provide adapters for several stream processing solution...

Very cool.