Conceptual differences of EventStore and EventBus in a distributed scenario

Hi Folks,

I’m trying to understand the relation of concept of Eventstore and Eventbus in a distributed scenario.

I’m building an Apache Kafka based scenario with distribution of events between the command/domain side and query side. In doing so I created a mechanism of distribution very similar to the Axon AMQP implementation (so a SubscribableMessageSource and a MessageProcessor) that works well. As a next step I started to create the Kafka-based TokenStore and EventStoreEngine, which are responsible for storing Events in Kafka.

Assume the Kafka EventStore is implemented, would I then configure the Command and Query sides both use the same KafkaEventStore and would get the event distribution “for free”, or would I still rely on the message distribution in ADDITION to storage of the events?

To nail it down: are concepts of event distribution and event storage related or separated in a distributed scenario?

More practical, I have to decide about the serialization format for messages in Kafka: should they be equals for EventStorageEngine and SubscribableMessageSource?

Kind regards,


Hi Simon,

I think the fact that interface EventStore extends EventBus answers your question.

The EventStore is, besides a storage mechanism suitable for event sourcing, also a means to transport messages between components. So I guess you do get the distribution for free :wink: