Design: Event Store System
Design the core event store service and its API for microservices. Out of scope: event consumer implementations, UI, and event processing logic.
Functional Requirements
Non-Functional Requirements
Jump into concepts and practice - no test required
+---------------------+
| Microservice Client |
+----------+----------+
|
| REST/gRPC API calls
v
+----------+----------+
| Event Store API |
+----------+----------+
|
+---------------+---------------+
| |
v v
+-------------------+ +---------------------+
| Event Storage DB | | Message Broker |
| (Append-only log) | | (Kafka/RabbitMQ) |
+-------------------+ +---------------------+
| |
| v
| +---------------------+
| | Event Consumers |
| +---------------------+
|
v
+-------------------+
| Event Query Index |
+-------------------+event store in a microservices architecture?event store?1: UserCreated {userId: 1, name: "Alice"}
2: UserNameUpdated {userId: 1, name: "Alicia"}
3: UserDeleted {userId: 1}userId=1 after replaying these events?