Комментарии 2
А что если просто kSQL заюзать?
Есть пара моментов:
По модели данных и примеру одному пользователю соответствует несколько доменов, а вот стейты в ProcessFunction сделаны ровно наоборот: по одному user_id предполагается несколько пользователей, но один домен. Скорее всего опечатка.
Второй момент методологический, как мне видится. У вас топики с пользователями и доменами будут всегда читаться разными тредами, поэтому в случае возникновения систематического запаздывания на одном из тредов (с топиком на кафке что-то страшное случилось, тред не успевает вычитывать из-за объема и т.п.) такой джоин будет отдавать состояния, которые никогда не существовали на источнике. Если надо, чтобы все было железно консистентно - писать надо CDC-события в один топик в порядке, в котором отдает СУБД-источник.
Join таблиц в реальном времени на Apache Flink