Skip to main content

Componentes

Contrato del payload de la cola

Cada mensaje en el topic notification satisface NotificationQueuePayload:
El consumidor usa channel para segmentar queue_event.event_type (vercel_queue.notification.<channel>) y type para elegir el handler.

Uso del dispatcher (productores)

Usa enqueueDurable para las notificaciones críticas (payment / system / transactional) y enqueue para el resto. Los envíos masivos usan enqueueBulk con throttling por lote.

Primer productor real

El push de pago fallido (PAYMENT_FAILED) está conectado de extremo a extremo: notifyPaymentFailed resuelve los miembros de la cuenta y encola un push de payment por usuario cuando un webhook transaction.failed de Toku registra un intento fallido. Como payment no es suprimible, el gating de preferencias nunca lo descarta, y cualquier fallo de encolado se registra sin romper el webhook.

Agregar un nuevo tipo

1

Registra el tipo

Agrégalo a NOTIFICATION_TYPES en notification-registry.ts.
2

Define sus datos

Extiende notification-queue-types.ts si el tipo necesita sus propios campos.
3

Override opcional

Registra un handler (channel, type) para lógica específica del tipo; de lo contrario se usa el handler de canal por defecto.
4

Produce

Llama a notificationDispatcher.enqueue(...) desde el servicio de negocio.
No se necesita ningún cambio en la ruta del consumidor ni en vercel.json para un nuevo tipo dentro de un canal ya soportado.