Установка:
- В рамках всей системы существует концепция списка товаров для каждого клиента, и это необходимо для концепции, понимаемой несколькими службами A, B, C.
- Те же самые несколько служб выполняют особый тип работы, который работает с этим списком элементов.
- Это нормально, если B или C работают с версией списка элементов, которая не обновлена, если они в конечном итоге получат последнюю версию.
Мой дизайн:
- Одна служба А является источником правды для текущего состояния списка предметов. В этом сервисе манипулируют списком.
- Когда список изменяется, A публикует список, а B и C подписчики этого события сохраняют его копии в собственном хранилище.
- Когда B и C выполняют свою работу, они используют свою локальную копию списка.
- B и C также имеют дополнительные состояния, специфичные для их домена.
Мое обоснование:
Поскольку B и C не запрашивают список A, когда выполняют свою работу, они не зависят от A. Если A по какой-то причине выходит из строя, влияние на систему заключается только в том, что B и C не иметь актуальную информацию, которая является приемлемой, и которая будет смягчена, когда фиксированный A.
Что-то не так с этим?