Понимание процесса CDC
Сбор данных об изменениях позволяет нам отслеживать изменения, внесенные в базу данных, и реагировать на них.
Мы можем отслеживать изменения, внесенные в базу данных, и запускать последующие системы. Этот шаблон отлично подходит для архитектур, управляемых событиями, поскольку мы можем отслеживать изменения и запускать нижестоящих пользователей или даже реплицировать данные в нашем ограниченном контексте / микросервисах.
Отслеживание изменений
- Сбор данных об изменениях позволяет нам отслеживать изменения в базе данных.
- Вы можете отреагировать на эти изменения, чтобы запустить нижестоящих пользователей или скопировать данные в другие базы данных / представления.
- Отслеживание изменений в базе данных - довольно распространенная практика, и сбор данных об изменениях может помочь нам создать устойчивые и масштабируемые архитектуры, управляемые событиями, которые будут создавать события для внутреннего использования, а также события домена для бизнес-использования.
- Изменение шаблонов сбора данных может помочь нам сократить объем пользовательского кода, который нам нужно написать. Например, вместо того, чтобы генерировать события сразу после вставки базы данных, мы можем вставить и позволить службам/базам данных передавать нам событие сбора данных об изменении.
- Отличным примером этого является использование потоков DynamoDB. Данные передаются потребителям практически в режиме реального времени.
Синхронизация данных
- Функция отслеживания изменений может использоваться для синхронизации данных на многих уровнях вашей архитектуры.
- Многие архитектуры имеют множество источников данных, сбор данных об изменениях позволяет нам отслеживать изменения в “лидере” и передавать эти изменения “последователям”.
В сочетании с другими шаблонами проектирования
- При использовании событий сбора данных об изменениях вы можете захотеть добавить слои между системами, которые их используют, чтобы обогатить или отфильтровать данные.
- Пример: если потребителю события требуется дополнительная информация, вы можете использовать для этого шаблон обогащения.
Реплицируйте данные через границы
Ваша архитектура может быть разделена на множество областей. Вы можете использовать шаблон сбора данных с изменениями для репликации данных через границы, что делает системы более устойчивыми, отдавая предпочтение доступности, а не согласованности.
- Репликация данных может в конечном итоге обеспечить согласованность, поскольку, если в вашу базу данных не вносятся изменения, все данные прослушивателя в конечном итоге будут согласованными. Это означает, что изменения данных в вашей архитектуре происходят асинхронно и могут занимать много времени, поэтому важно это понимать.





