CQRS: Синхронизация баз данных Write и Read

Кто-либо может дать мне некоторое направление в отношении различных способов синхронизировать базы данных Write и Read?

Что такое различные технологии там, и как Вы оцениваете каждого, с точки зрения realiability, производительности, стоимости для реализации, и т.д.

7
задан Filip De Vos 23 May 2012 в 13:00
поделиться

1 ответ

Обычно в CQRS база данных записи используется для хранения переходных данных для длительно выполняющихся процессов (саги). Если вы синхронизируете чтение и запись БД (я предполагаю, что вы имеете в виду оба способа), возможно, вы делаете что-то не так.

Для длительного процесса, в котором служба ожидает несколько сообщений, требуется способ временного хранения данных до того, как будут получены все сообщения. Примером этого является регистрация клиента, когда требуется одобрение менеджера, на обработку которого уходит неделя. Службе необходим способ временного хранения информации о клиенте до получения утверждения. Здесь БД записи используется для хранения этой части временных данных. Обратите внимание, что до утверждения клиента в читаемую БД еще ничего не записывается.

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

Для более простого процесса, такого как изменение имени клиента, изменение можно сразу же записать в БД чтения. Запись в БД записи не требуется, поскольку в этом случае нет временных данных.

7
ответ дан 7 December 2019 в 05:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: