Skip to content

"Ordens e Pagamentos" é um projeto de aprendizado com NestJS, Kafka e microserviços. Explora mensageria e comunicação assíncrona para criar e gerenciar ordens e pagamentos. Ideal para entender a arquitetura distribuída e construir sistemas escaláveis.

Notifications You must be signed in to change notification settings

leocarlos-dias/payments-kafka

Repository files navigation

Ordens e Pagamentos

Explorando os conceitos de mensageria e microserviços com NestJS e Kafka

Node.js Version TypeScript Version NestJS Version Prisma Version Kafka Version

📖 Descrição

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.

🚀 Tecnologias Utilizadas

  • Node.js
  • TypeScript
  • NestJS
  • Prisma
  • MySQL
  • Kafka
  • Docker
  • Docker Compose

📁 Estrutura do Projeto

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
└── ...

🛠️ Como Executar

1. Configuração

Certifique-se de ter o Docker e o Docker Compose instalados em sua máquina.

2. Clonar o Repositório

git clone https://github.com/seu-usuario/ordens-pagamentos.git

3. Executar o Docker Compose

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.

4. Configuração das Aplicações

4.1 App

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.

4.2 Orders

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

4.3 Payments

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

🛠️ Opcional Como Executar com Dev Container

1. Configuração

Certifique-se de ter o Docker e o Docker Compose instalados em sua máquina e o plugin do Dev Container no VSCode.

2. Clonar o Repositório

git clone https://github.com/seu-usuario/ordens-pagamentos.git

3. Abrir o projeto com o Dev Container

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.

4. Configuração das Aplicações

4.1 App

Instale as depêndencias do projeto:

npm install     # Instalar as dependências

4.2 Orders

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

4.3 Payments

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

📝 Utilização

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'.

About

"Ordens e Pagamentos" é um projeto de aprendizado com NestJS, Kafka e microserviços. Explora mensageria e comunicação assíncrona para criar e gerenciar ordens e pagamentos. Ideal para entender a arquitetura distribuída e construir sistemas escaláveis.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages