1
votes

I really like idea of event sourcing. The main advantage for me is this:

If you build microservices than with event sourcing it becomes very easy to communicate. Your components are decoupled, all they need to do is to know where is event store.

What is the simplest event store do you know? I just want to store events that occurs in my application and let other components to see these for new events to come.

I'm using scala

I had experience with apache kafka, there are many libraries for reading kafka topics (for eg. akka kafka stream)

Apache kafka is a cluster system. It's hard to deploy, setup, this is the hardest part for me. I want to build application and work with services logic, not setting up kafka cluster. I heard about vertx and it's event bus, but i didn't tried it yet

2
Questions asking us to recommend or find a book, tool, software library, tutorial or other off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers - help centerOneCricketeer
If you used a hosted Kafka solution, you wouldn't need to set it up... Generally, there's a separate team at large companies maintaining those systems anywayOneCricketeer
@cricket_007, i'm aware of devops team. I just what to find a software that you can easily install as databaseAlexander Kondaurov
Kafka is fairly easy to install, in my opinion. It's just harder to tune, but the same is true for all databases.OneCricketeer

2 Answers

1
votes

Event sourcing is not about the tool, but about the design. You can do event sourcing even with MySQL.

However on the tooling side, you may check:

  • Lagom - it is superseding Akka I think, from the same teams, but seems to be easier.
  • EventStore - Simple event store from Greg Young
0
votes

Event Sourcing is not about communicating between services but rather about storing data as an immutable log (typically within a service). For this use case Kafka is not a particularly good option. Read this post about some of the reasons why.

However, Kafka can be paired with an Event Sourcing solution to provide distribution of events to other services.