Веб-приложение нуждается в ответе от интеграции Kafka + Cassandra - PullRequest
0 голосов
/ 10 сентября 2018

В настоящее время поток данных архитектуры выглядит следующим образом:

Вариант использования # 1 Webapp -> создать новый запрос на обслуживание (SR) (Nodejs) -> Kafka -> Cassandra.

Вариант использования # 2 Webapp -> данные о пользовательских событиях (Nodejs) -> Kafka -> Cassandra

Вариант использования # 2

Nodejs отправляет данные о пользовательских событиях, захваченные в kafka, Nodejs получит 200 OK обратно от kafka.

У меня нет проблем с этим, он работает как задумано.

Вариант использования # 1

Nodejs отправляет новые данные запроса на обслуживание в Kafka

Кафка затем обновит таблицу ключей с помощью INSERT в Cassandra

Проблема, с которой я сталкиваюсь, заключается в том, что nodejs не будет знать, успешно ли Cassandra вставила данные.

Мне нужно ответить конечному пользователю, что запись была успешно вставлена ​​в базу данных (создана SR), на основе которой мне нужно запустить другой процесс.

Я прошел асинхронный процесс Nodejs, чтобы пообещать / подождать, пока Кассандра ответит, но это выглядит сложно.

Мой подход для варианта использования # 1

Webapp -> Nodejs (асинхронное ожидание) -> Kafka (Request_topic) -> Cassandra
Кассандра -> Кафка (Response_topic) -> узел (асинхронный) -> веб-приложение

Для варианта использования №1 неправильный дизайн, так как это вызов транзакции базы данных с конечным пользователем, ожидающим ответа от базы данных?

Или мой подход должен отличаться, чтобы Кафка был единственным источником истины. Я также индексирую данные из Kafka в Elasticsearch.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...