Skip to content

Latest commit

 

History

History
77 lines (49 loc) · 3.7 KB

pt-br.md

File metadata and controls

77 lines (49 loc) · 3.7 KB

NestJS Standalone

Esta aplicação foi desenvolvida para demonstrar o conceito de standalone, onde cada módulo funciona de forma independente e autossuficiente.

Badge

Demonstração

demo.mp4

O que é uma aplicação standalone ?

Uma aplicação standalone, ou aplicação autônoma, é um software que pode executar de forma independente, sem a necessidade de instalação de outros programas. Normalmente, uma aplicação standalone incorpora todos os recursos e bibliotecas necessários para operar sem depender de software adicional. No contexto desta aplicação NestJS, podemos interpretar que os módulos podem funcionar de forma autônoma.

Fluxo da aplicação

O fluxo da aplicação no contexto do NestJS é estruturado em módulos, e cada módulo é concebido para operar de forma independente, como se fosse uma aplicação separada. Cada módulo possui seu próprio script de inicialização e é contido em seu próprio container.

imagem representativa dos container

Ao dividir a aplicação em módulos separados, cada um em seu próprio container, a comunicação entre esses serviços é mantida através de mensageria, utilizando o broker do RabbitMQ. Essa abordagem permite uma arquitetura mais distribuída e escalável, onde cada módulo pode ser dimensionado individualmente conforme necessário.

imagem representativa da comunicação dos serviços

Essa organização proporciona uma visão clara do ambiente de implantação da aplicação. Por exemplo, se houver a necessidade de escalar a aplicação, basta fazer uma configuração no arquivo docker-compose para especificar quantas instâncias de cada serviço são desejadas.

Essa separação em módulos autônomos facilita não apenas a escalabilidade, mas também a manutenção, o desenvolvimento e a depuração da aplicação, uma vez que cada parte pode ser tratada de forma independente, sem interferir nas outras. Além disso, essa abordagem promove uma arquitetura mais resiliente, onde uma falha em um módulo não afeta necessariamente o funcionamento dos outros.


🛠️ Pré-requisitos

  • Docker e docker-compose instalados

🎲 Rodando o Backend

Criar o arquivo .env e copiar as variáveis do .env.example

cp ./.env.example ./.env
  • Fazer alterações quando necessário

Rodar aplicação

docker-compose up -d 

Verificar logs da aplicação

docker logs -f {nome-do-container} --tail 200

Entrar dentro do container da aplicação

docker exec -it {nome-do-container} sh

📖 Documentação da api

Documentação

👨🏼‍💻 Tecnologias

As seguintes ferramentas foram usadas na construção do projeto:

🛠️ Observações

  • Instalar dependências dentro do container
  • A documentação não fica disponível caso a variável de ambiente NODE_ENV esteja como production

🌍 Leia isso em outro idioma