Мне поручено создать поток событий, в котором у меня есть автоматический опросчик (установленный с 10-минутными интервалами) для извлечения всех объектов, которые изменились за последние 10 минут.
Теперь бизнес-логика требует, чтобы мы создавали новые события обновления только при изменении определенных полей в сущности. Поскольку у нас нет детализации в отношении того, какое именно поле изменилось (все, что мы знаем, это то, что что-то изменилось), мне нужно создать какой-то метод дифференциатора, который выполняет следующее:
- Получает предыдущее состояние объекта
- Сравнивает это предыдущее состояние с самым новым состоянием (т.е. diff)
- Создайте событие обновления, если хотя бы одно из полей, которое бизнес-логика определила как важное
- Если событие обновления было создано, замените предыдущее состояние объекта последним.
Учитывая эту архитектурную проблему, существует ли известный шаблон или набор шаблонов или рекомендации по построению системы такого типа?