Skip to content

Parent de microserviços feitos em Go, NextJS/ReactJS e NestJS. Comunicação com Apache Kafka e gRPC conteinerizado com Docker.

Notifications You must be signed in to change notification settings

VictorMagalhaesSales/microsservices-banks-parent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Parent de microserviços feitos em Go, NextJS/ReactJS e NestJS. Comunicação com Apache Kafka e gRPC conteinerizado com Docker.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published