Microsserviço é uma arquitetura baseada em uma coleção de serviços independentes que são:
- Altamente sustentável e testável
- Baixo acoplamento
- Implantado separadamente
- Organizado de acordo com as regras de negócio.
- Geralmente mantido por uma equipe pequena.
Em um determinado sistema de usuários esta sobrecarregado por uma alta demanda de solicitações. A segurança das informações tem níveis diferentes e os consumidores de dados podem buscar apenas uma fração ou acesso total. Existe também uma aplicação de Machine Learn que faz analise desses dados.
Após análise do contexto a aplicação foi divida em 3 partes e determinado seus serviços.
Service One será responsável pela Base A que contém informações de extremamente sensível e deve ser aplicado proteção e ter um nível de segurança maior
Service Two será responsável pela Base B que também contém dados criticos, mas seu acesso deve mais rápido que a Base A e suas informações também bem são consumidas por um sistema de Machine Learn.
Service Three será responsável pela Base C, essa aplicação armazena eventos que acontecem com o do usuário
Para gerenciamento dos microsserviços e prove uma API centralizada o Service Integrator terá o papel de integração entre os consumidores e os microsserviços
Usando os serviços da AWS, foi adicionado uma camada de API Gateway com uma função lambda de OATH2 para gerenciar os acessos a api do integrador.
O Service Integrator tem a responsabilidade de requisitar as informações ao outros microsserviços e agregar os resultados em um único payload.
O Service One usará um banco relacional e criptografar os dados gravados e descriptografa quando obter, irá armazenar em um redis para evitar carga no banco principal.
Service Two usará um banco orietado a documento MongoDB por sua natureza de distribuição e no caso de uso uma aplicação de Machine Learn esta consumindo seus dados.
O Service Three usará o Elastic Search, é a melhor opção para busca e armazenamento de documentos de eventos.
Obs: Por questões de expor com mais facilidade, essa projeto contém os serviços citados. Em um caso real, cada um dos microsserviços teria seu próprio controle de versão.