Every architecture design model has its own challenges for implementation. Let's discuss the challenges of ES and CQRS:
- Inconsistency: Systems developed using ES and CQRS are mostly consistent. However, as we store the events issued by the Command Business Service at the Event Store, and store the state of the application in the main Storage as well, I would say this kind of system is not fully consistent. If we really want to make our system fully consistent using ES and CQRS, we need to keep our Event Store and main Storage on a single Relational Database, and our Command processor should handle all our incoming events, and store them in both storages at the same time, as depicted in the following diagram: ...