Skip to content

willianmarquess/nodejs-microservice-example

Repository files navigation

NodeJS Microservices Example: Javascript, Express, MongoDB, RabbitMQ

GitHub repo size GitHub language count GitHub forks

💻 Pré-requisitos

Antes de começar, verifique se você atendeu aos seguintes requisitos:

  • Nodejs >= 6.9
  • Docker
  • Docker Compose

Para executar o projeto siga os seguintes passos:

  1. rode o comando: docker-compose up -d

Motivação :thought_balloon:

O projeto foi desenvolvido para fins de estudo sobre microserviços e comunicação assíncrona utilizando um message broker, a ideia foi desenvolver dois microserviços: customer-api e account-api, cada serviço com o seu banco de dados e contexto separados se comunicando através de mensagens assíncronas utilizando o message broker RabbitMQ.

Analisando os microserviços

  1. customer-api: serviço que armazena informações do cliente, que contém um escopo simples e armazena apenas os dados da entidade Customer: name, cpf, birth_date
  2. account-api: serviço que armazena e gerencia informações da conta do cliente, contém um escopo separado do contexto do customer-api, e armazena dados das seguintes entidades: {Account: balance, number, customer}, {Customer: name, document_number, customer_service_id}

Fluxo de eventos (comunicação assíncrona)

  • Quando um customer é modificado (CRUD) no contexto do customer-api ele dispara um evento para o message broker (customer-created, customer-updated, customer-deleted), esse evento é enviado para uma fila no RabbitMQ e no serviço account-api existem os consumers que irão alimentar o banco de dados com esses eventos, promovendo assim uma integridade nos dados dos dois serviços.

logo

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages