Introdução

Olá novamente meu querido leitor, este é o 'Log' da segunda reunião sobre o Projeto Portfel, onde eu me amigo Cesar discutimos com alguns pequenos detalhes o que queremos ou não queremos que nossa aplicação faça. Se você não leu a primeira reunião, por favor leia aqui antes que comece esta.

Nesta reunião nós simplesmente discutimos um pouco mais sobre coisas que já discutimos na primera reunião, então como um pequeno spoiler nós detalhamos como o 'Serviço de gerenciamento de Usuário' irá funcionar e como irá interagir com o 'Serviço de gerenciamento de Carteiras' e assim por diante. Para finalizar esta introdução com spoilers nós dicutimos um pouco mais a fundo como nós imaginos que será a estrutura da aplicação como um todo. Então fica ligado (Anos 90 ta pedindo a expressão de volta) e vamos ao ponto.

A estrutura toda

Foi definido que a aplicação será composta por uma série de imagens de Docker orquestradas por uma aplicação Docker Compose. Todos os serviços (exceto comunicação base dados/serviço e comunicação front-end/back-end) irão comunicar-se entre si utilizando Kafka, porque assim podemos gerenciar os request sem perdê-los em caso de termos muito mais requests do que podemos processar.

Kafka será discutido com mais detalhes quando eu postar a reunião sobre criar a imagem Docker do Kafka para nossa applicação, mas em resumo, Kafka é uma aplicação de filas e como uma fila no mundo real nós temos uma aplicação de um lado desta fila, empilhando requests e do outro lado outra aplicação desempilhando esses requests e processando- os, assim quando termina o response, a aplicação irá empilhá-lo em outra fila e assim será desempilhado por outra aplicação que está esperando pelo response do outro lado.

Além da iamgem do Kafka teremos as seguintes imagens nesta aplicação:

  1. Imagem do front-end Web
  2. Imagem da base de dados de Usuário
  3. Imagem da base de dados da Carteira
  4. Imagem do serviço back-end de gerencimento de Usuário
  5. Imagem do serviço back-end de gerencimento de Carteira
  6. Imagem de serviço REST para conectar o front-end com o back-end
  7. E a já citada imagem do Kafka

Serviço de gerenciamento de Usuário

Este serviço irá gerenciar a autenticação e autorização do usuário e será composto por 3 partes:

  1. Uma base de dados MongoDB para armazenar os dados do usuário(que ainda não decidimos ainda quais dados serão armazenados)
  2. Uma aplicação back-end escrita em Scala para gerenciar autorização e autenticação
  3. Uma aplicação Front-end para ações de login escrita usando Webpack, (Angular or React) e Scss

Isto será escrito como um serviço de OAuth e deverá funcionar garantindo acesso a certas áreas baseado nas credenciais do usuário, as sessões deverão expirar depois de X horas e o mais importante é que irá ser seguro e ninguém (incluindo os desenvolvedores ou qualquer outra pessoa trabalhando em outra área de TI da 'empresa') além do usuário terá acesso aos dados.

Conclusão

Mais uma reunião curta com poucos detalhes adicionados. Acredite ou não isso nos tomou 3 horas para definir essas mudanças e no fim apenas definimos que teremos 7 imagens Docker no mínimo sendo controladas pelo Docker Composer. Como sempre, assim que meu amigo postar seu post em seu blog sobre essa reunião irei atualizar esse post e colocar o link para você pode ter uma perspectiva diferente do projeto. Vejo você no próximo post, até.