An event source CQRS looks perfect as an architecture for one of our systems, there is only one small thing that we are worried about right now: Handling a large number of events and handling huge event stores as a result.
Our current system receives about a million events per day (which currently has nothing to do with event sources), if we store them for a longer period of time, our event stores can become quite large, but if we dump / clean up Often, we can lose one of the big advantages of the event source: moving information about the system’s history and playback.
What are common ways to solve this problem in the CQRS architecture? Is this a problem at all? Are we just throwing more equipment into the event repository or something we can do at the architectural design level?
I think the most common approach is to use snapshots and persistent reading models. That is, you do not actually reproduce your events very often, unless you need to create a new reading model or change the way the existing one works. By saving snapshots of your domain objects, you avoid repeating long streams of events.
, , CQRS . , .
, , , . , .
" ". , , , , , , , ? , ( ). , , - , ( ), . , , , , .
- . , , , , , -, ( , , ). , .
. ( ).