Я использую DDD для сервис-ориентированного приложения, предназначенного для передачи большого объема сообщений между большим количеством веб-клиентов (т. Е. Браузеров).
Поскольку в контексте требуемой функциональностипотребность в передаче перевешивает потребность в хранилище, мне нравится идея полагаться в первую очередь на оперативную память и минимизировать использование базы данных.
Однако мне неясно, как сконструировать это с точки зрения масштабируемости.Веб-ферма обеспечивает высокую доступность конечных точек служб и обработку логики домена.Но независимо от того, сколько у меня серверов, кажется, что все они должны иметь общий репозиторий, чтобы их данные были согласованными.
Как мне построить этот репозиторий, чтобы он был максимально масштабируемым?Как его можно распределить по массиву физических машин таким образом, чтобы все машины были согласованы и каждому было наплевать, если другой выйдет из строя?
Также, поскольку иногда требуется прикосновение к базе данных (например,когда клиент пропадает и сообщения, предназначенные для него, должны быть сохранены до его возвращения), как мне организовать мой код на основе памяти и уровень доступа к данным?Они оба считаются "хранилищем"?