Explorando os conceitos de mensageria e microserviços com NestJS e Kafka
O projeto "Ordens e Pagamentos" é uma aplicação desenvolvida com o objetivo de explorar os conceitos de mensageria e microserviços, utilizando as tecnologias NestJS e Kafka. O projeto tem como finalidade permitir a criação e manipulação de ordens e pagamentos, fornecendo uma experiência prática na implementação de microserviços independentes e sua integração.
- Node.js
- TypeScript
- NestJS
- Prisma
- MySQL
- Kafka
- Docker
- Docker Compose
O projeto é composto por dois servidores "distintos" localizados nas pastas apps/orders
e apps/payments
. Cada servidor possui responsabilidades específicas relacionadas à criação, processamento e comunicação das ordens e pagamentos.
.
├── apps
│ ├── orders
│ │ ├── src
│ │ │ ├── controllers
│ │ │ ├── services
│ │ │ └── ...
│ │ └── ...
│ └── payments
│ ├── src
│ │ ├── controllers
│ │ ├── services
│ │ └── ...
│ └── ...
├── ...
├── docker-compose.yml
└── ...
Certifique-se de ter o Docker e o Docker Compose instalados em sua máquina.
git clone https://github.com/seu-usuario/ordens-pagamentos.git
Acesse a pasta raiz do projeto e execute o seguinte comando para iniciar os containers:
docker-compose up
Este comando iniciará os serviços necessários, incluindo o servidor Kafka.
Acesse o terminal do docker usando o seguinte comando:
docker compose exec app bash
Logo após instale as depêndencias do projeto:
npm install # Instalar as dependências
Observação: É necessário a utilização do terminal executado pelo docker compose para as próximas etapas.
Acesse a pasta apps/orders
e execute os seguintes comandos:
cd apps/orders # Acessar a pasta
npx prisma migrate dev # Executar as migrações do Prisma
npm run start:dev # Iniciar o servidor de ordens
Acesse a pasta apps/payments
e execute os seguintes comandos:
cd apps/payments # Acessar a pasta
npx prisma migrate dev # Executar as migrações do Prisma
npm run start:dev payments # Iniciar o servidor de pagamentos
Certifique-se de ter o Docker e o Docker Compose instalados em sua máquina e o plugin do Dev Container no VSCode.
git clone https://github.com/seu-usuario/ordens-pagamentos.git
Acesse a pasta raiz do projeto, abra a paleta de comandos do VSCode e digite por:
Dev Containers: Open Folder in Container
Este comando iniciará os a configuração necessária. Será preciso inserir o diretório do projeto após avançar no comando.
Instale as depêndencias do projeto:
npm install # Instalar as dependências
Acesse a pasta apps/orders
e execute os seguintes comandos:
cd apps/orders # Acessar a pasta
npx prisma migrate dev # Executar as migrações do Prisma
npm run start:dev # Iniciar o servidor de ordens
Acesse a pasta apps/payments
e execute os seguintes comandos:
cd apps/payments # Acessar a pasta
npx prisma migrate dev # Executar as migrações do Prisma
npm run start:dev payments # Iniciar o servidor de pagamentos
O arquivo api.http, localizado na raiz do projeto, contém as requisições necessárias para interagir com a API. Para executar essas requisições diretamente no editor, você pode utilizar o plugin do VSCode chamado 'REST Client'.