/notifications-service

A notifications microservice built on NestJs

Primary LanguageTypeScript

Wallpaper- 2560x1600

Uma API de entrega de notificações

:atom: Projeto

O projeto desenvolvido durante o bootcamp IgniteLab da Rocketseat, tem as funcionalidades:

  • Criar notificação
  • Retornar todas as notificações de um recipiente
  • Contar todas as notificações de um recipiente
  • Marcar uma notificação como lida
  • Marcar uma notificação como não lida
  • Cancelar a notificação

🔧 Tecnologias

  • NodeJS
  • NestJS
  • Kafka
  • Jest

:octocat: Rodando o projeto

Instalar as dependências

npm install

Iniciar o ambiente

npm run start:dev

Para criar um producer você pode iniciar um projeto node:

npm init

Instalar o kafka:

npm i kafkajs

Criar um cluster no Upstash.

E configurar o producer:

import { Kafka } from 'kafkajs'
import { randomUUID } from 'node:crypto'

async function bootstrap() {
  const kafka = new Kafka({
    clientId: 'test-producer',
    brokers: ['paste_your_broker'],
  sasl: {
    mechanism: 'scram-sha-256',
    username: 'paste_your_username',
    password: 'paste_your_password',
  },
  ssl: true,
  })

  const producer = kafka.producer()

  await producer.connect()

  await producer.send({
    topic: 'notifications.send-notification',
    messages: [
      {
        value: JSON.stringify({
          content: 'Nova solicitação de amizade!',
          category: 'social',
          recipientId: randomUUID(),
        })
      }
    ]
  })

  await producer.disconnect()
}

bootstrap()