Если я создаю один table
(или document
в document databases
) в aggregate type
, я могу объединить базы данных или шард их всякий раз, когда я реорганизовать write
стороны по microservices
, и в результате приложения становится более масштабируемым, а также увеличивает скорость загрузки events
.Как разработать модель данных MongoDB для хранения событий Event Sourcing
Есть ли побочные эффекты, о которых я должен знать, пока я проектирую event store
?
Edit:
настоящее время я использую MongoDb
.
Что делать, если я создаю collection
за aggregate id
? или a database
за aggregate type
и a collection
за aggregate id
...?
Является ли это проблематичным по производительности, простоте администрирования данных, ремонтопригодности или дополнительной масштабируемости?
Вы говорите о таблице-Per-агрегатный-Type (каждое событие строка в таблице) или Document-Per-Aggregate-Instance (один документ на экземпляр, события как массив внутри документа, единая коллекция для всех агрегатов)? –
Будет ли вопрос лучше сформулирован как «как мне создать мою модель данных MongoDB для хранения событий Sourcing Event»? – guillaume31
@ guillaume3: такой дизайн данных событий приводит к неличному хранилищу событий (все агрегаты не упорядочены в одной таблице, документе или файле ...) на стороне записи, и я ищу проблемы, которые он может обеспечить в разных ситуациях (особенно MongoDb). Например, возможно, такой дизайн подходит для баз данных Sql, но не для MongoDb ... – Mohsen