Kafka Streams как таблица Patch log не заполнена - PullRequest
0 голосов
/ 12 июля 2019

Требуемая функциональность: для данного ключа, key123, многочисленные службы работают параллельно и сообщают о своих результатах в одно местоположение, после того как все результаты собраны для key123, они передаются новому нижестоящему потребителю.

Оригинальная идея: использование AWS DynamoDB для хранения всех результатов для данной записи.Каждый раз, когда результат готов, микросервис выполняет операцию PATCH для базы данных на ключе 123.Выходной поток проверяет каждое ОБНОВЛЕНИЕ, чтобы увидеть, завершена ли запись, если это так, она пересылается вниз по течению.

Новая идея: используйте Kafka Streams и KSQL для достижения той же цели.Все сервисы записывают свой вывод в раздел результатов, который формирует журнал изменений Kstream, который мы запрашиваем в KSQL для завершенных записей.Что-то вроде:

CREATE STREAM competed_results FROM results_stream SELECT * WHERE (all results != NULL). 

Часть, которую я не уверен, как сделать, это операция PATCH в потоке.Чтобы поток вывода отображал накопление всех сообщений для key123 вместо только самого последнего?

Пользователи KSQL, это вообще имеет смысл?Я близок к решению, которое кто-то сделал раньше?

...