Evento da Rocketseat. 2022.
Microsserviço especializado em notificações.
Instalação das dependências:
# Navegue até o diretório do projeto de notificações
$ cd notifications-service
# Instalar dependências
$ npm install
# Navegue até o diretório do producer
$ cd kafka-producer
# Instalar dependências
$ npm install
Para que o projeto funcione é necessário um servidor Kafka. Para esse projeto utilizo o Upstash* para subir o servidor.
*Upstash: possui um serviço gratuito limitado a criação de um cluster.
- Após configurar o servidor Kafka no console do upstash, adicionar as credênciais do servidor aos respectivos arquivos
.env
de kafka-producer e notifications-service.
- Serviços independentes e especializados.
- Um banco de dados para cada serviço.
- Framework opinado.
- Integrações.
- TypeScript & Decorators.
Conceitos:
- Controlles: rotas da aplicação.
- Services: funcionalidades.
- Inversão de dependências: classe recebe suas depedências através do construtor. Quem instanciar a classe vai dizer quais suas dependências.
- Injeção: automatizar a inserção das dependências no momento que as classes são instanciadas.
Conceitos:
- Pensar nas entidades da aplicação como classes.
- Infra: tudo que é relacionado a coisas externas da aplicação. Camadas externas: bando de dados, conexão com outras API's, rotas http.
- Principio da responsabilidade única do SOLID.
- Repository pattern: intermedio entre aplicação e camada de persistência. Funcionalidades que fazem a comunicação entre banco de dados e aplicação.
- Primeiro: interface com quais métodos deve ter.
- Depois: implementações.
- Banco de dados em memory para os testes.
Conceitos:
- Factory pattern: reutilização de código
Conceitos:
- Adicionando Kafka ao projeto.
- O Apache Kafka é uma plataforma distribuída de transmissão de dados que é capaz de publicar, subscrever, armazenar e processar fluxos de registro em tempo real. Essa plataforma foi desenvolvida para processar fluxos de dados provenientes de diversas fontes e entregá-los a vários clientes.
npm i -g @nestjs/cli
Instalação do Nestnest new project-name
Criar projetonpm i class-validator class-transformer
npx tsc --noEmit
Retorna os arquivos que estão com erros
- Error Prettier
- Mudar o padrão de quebra de linha do vscode de
CRLF
paraLF
. Pode ser alterado na barra abaixo no vscode.
- Mudar o padrão de quebra de linha do vscode de