Essa API simula um pedido sendo feito (Orders
), após isso é publicado no Kafka uma mensagem.
Em seguida Payments
consome a mensagem no Kafka( pagamento realizado), processa se o pagamento foi ou não realizado, em seguida publica uma nova mensagem atualizando o status do pedido.
Por fim, Orders consome a mensagem no Kafka e altera o status do pedido para Payed
ou Cancelled
Essa aplicação utiliza: Nest Docker
Primeiro suba o container com o seguinte comando:
$ docker-compose up
Você pode utilizar a entensão Dev Containers
do VSCode para auxiliar nesse processo.
Após isso o seu Banco de Dados em MySQL já deve estar de pé, junto com seu container do Kafka
-
Adicione os tópicos
orders
epayments
nolocalhost:9021
que é onde está rodando seu Kafka -
Utilize o arquivo
.docker/mysql/init.sql
para criar as tabelas orders e payments no Banco de Dados -
Em seguinda instale as dependências locais da sua aplicação:
$ npm install
Os seguintes comandos sobem o server de sua API:
# development
$ npm run start
# watch mode
$ npm run start:dev
Para rodar sua API de Payments:
$ npm run start:dev payments