Привет, у меня проблема с выяснением того, как сценарий classi c SOA будет проецироваться поверх обработки KAFKA.
У меня есть следующий случай. У меня есть заказ, который, скажем, этот порядок содержит несколько разделов Данные пользователя, технические данные и спецификации. Когда событие изменения или создания получено, копия полного заказа отправляется на уровень интеграции. Что мне нужно, это выполнить оркестровку на 3 службы SpecificationService, TecnicalDataService и Customer Service. Служба поддержки клиентов и TechynicalDataService могут выполняться независимо друг от друга, но только после успешного завершения SpecificationService.
Если мы преобразуем проблему в классическое решение рабочего стола. Это будет означать рабочий стол со следующими столбцами OrderID | Время события | IsProcessed | isSpecificationSent | isCustomerdataSent | Технические данные отправлены
То, что я думал сделать с KAFKA, это иметь 3 темы:
- OrderEvent topi c,
- retry topi c
- Успешно обработанные topi c
Я думал о двух направлениях: 1) Используйте API Consumer / Producer. 2) Попробуйте использовать API потоков и обработки.
проблема заключается в том, что если событие для заказа на покупку лежит на событии topi c, то возможно, что в этом же заказе есть второе событие с более поздним хронологическим заказом, который также доступен. Поэтому, если мне не удается выполнить одно событие заказа, мне нужно принудительно завершить все последующие события этого заказа.
Я думал использовать StateStore, который совместно используется двумя потоками: поток обработки событий и поток обработки повторных попыток topi c. , Но из того, что я вижу, это невозможно.
Как организовать организацию обработки / обслуживания вокруг KAFKA, а не вокруг рабочего стола в БД?