[Conceitual] Buscas envolvendo multiplos microserviços
27/05/2020
0
Olá senhores, boa noite.
Trabalhei vários anos com projetos que se apoiavam numa arquitetura monolítica, portanto, tenho tido algumas dificuldades em compreender alguns aspectos de uma arquitetura modular como a de microserviços. Estive estudando o assunto mas esbarrei em uma dúvida que está me tirando um pouco de paz, e que no caso, me impede de iniciar meu projeto pessoal (para fins de estudo).
Para ilustrar minha dúvida precisamos falar a mesma lingua, e portanto vou sugerir um cenário específico para que possamos discutir melhor a questão. Não quero entrar no mérito da forma como separei os domínios da aplicação, afinal, o exemplo abaixo foi elaborado a fim de oferecer base para outra discussão.
Sistema de Exemplo:
Imagine uma aplicação voltada a controle de gastos onde os usuários podem cadastrar entradas e saídas de dinheiro, teríamos então 3 domínios diferentes, consequentemente resultando no mesmo número de microserviços. Seriam eles os microserviços de Usuários, Movimentações (Incomes e Outcomes) e por fim o serviço de Endereço (é estranho, eu sei).
Como a informação se relaciona ?
Cod. Usuário: 1 - Nome do Usuário: Pedro - Tipo de Movimento: Entrada - Valor do Movimento: R$ 20,00 - Rua: Afonso Pedroso - Estado: SP
Finalmente, A DÚVIDA...
Como seria possível fornecer ao usuário uma busca aonde fosse possível utilzar filtros de domínios diferentes ? Isso mesmo, imagine que o usuário está utilizando um APP que consome os nossos serviços, e que existe uma tela de busca com vários filtros. Agora, imagine que fosse possível buscar por um usuário filtrando Nome do Usuário + Tipo de Movimento + Estado do Endereço, como isso seria possível considerando que os filtros pertencem a domínios diferentes e microserviços diferente ?
Porque imagina, minha tela de busca chamou o serviço de Usuário e encontrou 20 linhas com o nome "Pedro", depois disso invocou um segundo microserviço que retornou apenas 8 linhas para o tipo de movimento, por fim invocou o serviço de Enderecos e encontrou apenas 2 usuário que residem em são paulo. Nesse cenário, o resultado final da busca seria de um total de 2 linhas, mas como amarrar isso ? Quem seria responsável por "costurar" os resultados ?
Essa é a dúvida.
Trabalhei vários anos com projetos que se apoiavam numa arquitetura monolítica, portanto, tenho tido algumas dificuldades em compreender alguns aspectos de uma arquitetura modular como a de microserviços. Estive estudando o assunto mas esbarrei em uma dúvida que está me tirando um pouco de paz, e que no caso, me impede de iniciar meu projeto pessoal (para fins de estudo).
Para ilustrar minha dúvida precisamos falar a mesma lingua, e portanto vou sugerir um cenário específico para que possamos discutir melhor a questão. Não quero entrar no mérito da forma como separei os domínios da aplicação, afinal, o exemplo abaixo foi elaborado a fim de oferecer base para outra discussão.
Sistema de Exemplo:
Imagine uma aplicação voltada a controle de gastos onde os usuários podem cadastrar entradas e saídas de dinheiro, teríamos então 3 domínios diferentes, consequentemente resultando no mesmo número de microserviços. Seriam eles os microserviços de Usuários, Movimentações (Incomes e Outcomes) e por fim o serviço de Endereço (é estranho, eu sei).
Como a informação se relaciona ?
Cod. Usuário: 1 - Nome do Usuário: Pedro - Tipo de Movimento: Entrada - Valor do Movimento: R$ 20,00 - Rua: Afonso Pedroso - Estado: SP
Finalmente, A DÚVIDA...
Como seria possível fornecer ao usuário uma busca aonde fosse possível utilzar filtros de domínios diferentes ? Isso mesmo, imagine que o usuário está utilizando um APP que consome os nossos serviços, e que existe uma tela de busca com vários filtros. Agora, imagine que fosse possível buscar por um usuário filtrando Nome do Usuário + Tipo de Movimento + Estado do Endereço, como isso seria possível considerando que os filtros pertencem a domínios diferentes e microserviços diferente ?
Porque imagina, minha tela de busca chamou o serviço de Usuário e encontrou 20 linhas com o nome "Pedro", depois disso invocou um segundo microserviço que retornou apenas 8 linhas para o tipo de movimento, por fim invocou o serviço de Enderecos e encontrou apenas 2 usuário que residem em são paulo. Nesse cenário, o resultado final da busca seria de um total de 2 linhas, mas como amarrar isso ? Quem seria responsável por "costurar" os resultados ?
Essa é a dúvida.
Cleiton
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)