Componentes
Contrato del payload de la cola
Cada mensaje en el topicnotification satisface NotificationQueuePayload:
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.vercel.json para un nuevo tipo
dentro de un canal ya soportado.