I tried to figure it out myself, read the articles. But I did not understand it thoroughly.
Closed due to the fact that the question is too general for the participants PashaPash ♦ , ermak0ff , Vladimir Glinskikh , xaja , aleksandr barakin 5 Oct '15 at 12:33 .
Please correct the question so that it describes the specific problem with sufficient detail to determine the appropriate answer. Do not ask a few questions at once. See “How to ask a good question?” For clarification. If the question can be reformulated according to the rules set out in the certificate , edit it .
2 answers
There are the following advantages:
- Data for reading, as a rule, is stored in a form that is easy to read and / or process (sic!). Since readers can be completely different (sub) systems, the type of data and the places where data is stored can vary greatly: it can be a database that stores denormalized data, and it can also be an index for full-text search.
- With separate read and write databases, you can easily manage scalability. For example, if you have the ratio read / write = 10/1, then you can easily add the necessary amount of power to the read part, without touching the write part.
Strictly speaking, CQRS contains the requirement of separation of operations . In fact, this means that there are different data models. Theoretically, two (or more) models can be contained in one database, but in practice this is either inconvenient or simply impossible.
PS Good question, why closed?
Also, thanks to this separation, the user interface and reports have less influence on how the domain architecture is built.
- Try to write more detailed answers. Explain what is the basis of your statement? - Nicolas Chabanovsky ♦