Skip to content

Latest commit

 

History

History
executable file
·
46 lines (36 loc) · 2.41 KB

README.md

File metadata and controls

executable file
·
46 lines (36 loc) · 2.41 KB

microservices-banks-parent

NextJS NestJS Golang Docker Kafka gRPC

Microserviços feitos com Go, NextJS e NestJS. Comunicação com Apache Kafka e gRPC conteinerizado com Docker. Projeto feito seguindo a "Imersão Full Stack && Full Cycle" da Code Education. A organização do projeto e suas documentações foram feitas pensadas em futuras revisões de códigos, conteúdos e arquitetura.

Microservices

Comunicação

  • O Frontend UIBank(NextJS) se comunica diretamente com a aplicação APiBank(NesJS) através do protocolo Rest;

  • Os 2 serviços de backend, APIBank e APIPix, se comunicam através de gRPC e serviço de mensageria do Apache Kafka;

  • Criar pix

    • Ao criar um Pix, a ApiBank solicita a ApiPix, via gRPC, para verificar se o Pix já existe;
    • Caso não existe, a ApiBank persiste o Pix e solicita a ApiPix, via gRPC, para persisitir a Pix;
  • Criar transação

    • Ao criar uma transação, a ApiBank publica uma mensagem no kafka com a transação criada.
    • A ApiPix consome essa mensagem do kafa, persiste no seu banco e publica outra mensagem confirmando a transação.
    • A ApiBank consome a mensagem de confirmação do kafka e atualiza o status da transação na sua base de dados.

Rodando containers

# Running ALL containers
docker-compose up

# Running NextJS container
cd ui-bank-nextjs
docker-compose up

# Running NestJS container
cd api-bank-nestjs
docker-compose up

# Running Golang container
cd api-pix-go
docker-compose up