CQRS

На мой взгляд данные приложения можно:

  1. Читать
  2. Изменять

Если мы хотим прочесть какие-то данные, то формулируем запрос (query), а когда желаем что-то изменить, то отдаем комманду (command).

Это 2 основопологающие отвественности любой системы обработки данных.

Разделить их - нам предлагает подход CQRS: Command Query Responsibility Segregation.

Сделать это - очень хорошая идея. Чтение данных происходит намного чаще, чем их изменение. Читать мы хотим быстро и удобно, а изменять - аккуратно.

Кроме того, в реальных проектах, помимо ценности самих данных, очень ценна, также, история изменений этих данных, а логировать команды намного эффективнее, чем и команды и запросы. Но лучший вариант, конечно же, чтобы лог комманд и был вашим единым источником истины, но об этом в другой раз.

Если ваш проект уже работает, но такого разделения отвественности все еще не имеет, лучше начать рефакторинг с буковки Q, новый же функционал логичнее реализовывать с буковки C.

<2023-01-22 Sun>

Author: Nikita Mistiukov <me@nekifirus.com>

Created: 2023-01-22 Sun 18:25

Validate