Uma API de entrega de notificações
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
- NodeJS
- NestJS
- Kafka
- Jest
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()