Consultas do sistema externo durante o processamento do Kafka Stream

Estou tentando criar uma arquitetura de streaming para análise de streaming. Requisitos:

Entrada de dados de streaming RT e NRTProcessadores de fluxo implementando algumas análises financeirasFluxo de saída da análise RT e NRTSolicitações de dados de referência durante o processamento do fluxo

Estou explorando os fluxos Kafka e Kafka para processamento de fluxo e mensagens em tempo real RT / NRT. Minha pergunta é: Preciso executar alguma consulta em sistemas externos (provedores de informações, MongoDB etc etc) durante o processamento do fluxo. Essas consultas podem ser de sincronização e de resposta assíncrona, com base nas características do sistema externo.

Eu liesta postagem explicar como se juntar ao KStream e ao KTable durante o processamento e é muito interessante, mas nesse cenário o KTable não depende dos parâmetros de entrada provenientes do KStream, é apenas uma representação de streaming de uma tabela.

Preciso consultar o sistema externo para cada mensagem do KStream, passando alguns campos de mensagem como parâmetros de consulta e enriquecer a mensagem de streaming com o resultado da consulta, depois publicar a mensagem aprimorada em um tópico de saída. Existe algum paradigma consolidado para projetar esse processamento de fluxo? Existe alguma tecnologia específica que eu melhor usar? Lembre-se de que as consultas podem ser sincronizadas e assíncronas.

Também gostaria de projetar invólucros para esses sistemas externos, implementando uma espécie de RPC distribuído, que pode ser chamado de um processamento Kafka Stream. Você poderia sugerir alguma tecnologia / estrutura? Eu estava considerando os atores da Akka para distribuir respondedores de consulta, mas não consigo entender se a Akka se encaixa bem no paradigma de solicitação-resposta.

obrigado

questionAnswers(1)

yourAnswerToTheQuestion