Я работаю над созданием набора схем для новой системы обработки событий и потоков, которую мы строим в моей компании, чтобы связать несколько несвязанных в настоящее время систем. Мы четко определили 12 моделей доменов и теперь пытаемся собрать набор схем событий, которые все приложения будут выходить на платформу с конфлюентным (kafka). Затем они будут собраны и обработаны samza для выполнения различных заданий, которые затем будут заполнять базы данных для наших услуг, относящихся к конкретным доменам.Модели данных потока событий
Все это хорошо, и мы начали с одного события на домен (например, адрес). Но мы быстро столкнулись с проблемами, требующими разных данных для разных типов событий. Например, для создания события требуется все (или большинство) полей в домене. Если для обновления требуется только идентификатор и то, что обновляется.
Итак, что я ищу, есть рекомендации от тех, кто сделал это в прошлом? В идеале я бы хотел, чтобы он очищался только с одной схемой событий для каждого домена. Таким образом, у нас есть одна соответствующая очередь kafka для каждого события, которую можно легко переиграть, чтобы восстановить состояние или вернуться к определенному предыдущему состоянию. Тем не менее, он чувствует, как более простой и более прагматичного подхода заключается в том, чтобы использовать отдельную схему для каждого глагола (то есть создание, обновление, удаление)
Stack детали некоторой релевантности:
Сливной REST Proxy -> Avro -> kafka -> samza -> различные dbs.