One of our new joiners is asking this question:
Why Lagom uses Cassandra as a default persistent layer instead of Kafka?
In fact, I start to see quite few companies doing event sourcing with Kafka only, i.e. kafka as an event journal storage.
One of the reasons why we need Cassandra I can think of is because we need to recover the actor’s latest state fast. i.e. Cassandra lets you query the snapshots table and the messages table whereas the same operation can be quite difficult to achieve with Kafka.
Kafka supports infinite retention periods of their logs so basically people can use it as a database if they want.
Are there any other good reasons to add here?
Thanks,
Joo