Kobana

Toda acción explicable. Toda entrega comprobable. Nada desaparece.

Log append-only garantizado por la base de datos, comprobante de entrega preservado como evidencia jurídica y un motor de envío con idempotencia de punta a punta, cola de reprocesamiento y reconciliación automática.

Auditoría y Confiabilidad
Registro de auditoría inmutable con acción, entidad y actor de cada evento
Append-only
garantizado por trigger en Postgres
4
capas de idempotencia en el envío
10 min
ciclo de reconciliación
0
mensajes perdidos silenciosamente

Confiabilidad garantizada por la arquitectura, no por promesas

1

Todo entra en el log

Actor (usuario, sistema o job), acción, entidad, antes/después, motivo e IP. La base de datos rechaza UPDATE y DELETE en el log.

2

La entrega se convierte en evidencia

Una notificación entregada no puede borrarse, ni tampoco el timestamp de entrega o el ID en el proveedor — protección alineada al STJ Tema 1.315.

3

El motor no pierde mensajes

Webhooks deduplicados, estado y cola grabados en la misma transacción, jobs con clave determinística y cola de reprocesamiento para fallas.

4

La reconciliación vigila

Cada 10 minutos, el sistema compara el estado esperado × la cola y corrige divergencias.

Del log inmutable a la cola de reprocesamiento

AuditLog Append-Only
Un trigger en Postgres rechaza la modificación y eliminación de registros de auditoría. Ni un administrador reescribe la historia.
  • Actor, acción, antes/después, motivo e IP
  • Cubre regla, supresiones, disputas, pagos y portal
  • Consulta desde la interfaz y desde la API
Comprobante de Entrega Protegido
Una notificación entregada es evidencia: la base de datos impide eliminarla o borrar deliveredAt y el ID del proveedor.
  • Alineado al STJ Tema 1.315
  • Canal, plantilla y destinatario preservados
  • Prueba de notificación para reporte negativo y protesto
Inbox de Webhooks
Toda entrega de webhook se persiste con una clave de idempotencia única antes de procesarse.
  • Reentregas del proveedor deduplicadas
  • Las fallas quedan reprocesables
  • Nada se procesa dos veces
Outbox Transaccional
El cambio de estado y la programación del job se graban en la misma transacción — o suceden los dos, o ninguno.
  • Dispatcher con jobId determinístico
  • La cola deduplica automáticamente
  • Sin estado huérfano ni job fantasma
Revalidación Previa al Envío
Milisegundos antes de entregar al proveedor, el worker reconfirma pago, cancelación, disputa, supresiones y estado de la regla con datos actualizados.
  • Si no aprueba → suprime con motivo
  • Probado en condición de carrera: un pago con mensaje ya en cola no genera envío
  • Motivo humanizado visible en la interfaz
Dead-Letter Queue y Reconciliación
Un job que agota los intentos va a la cola de reprocesamiento con el error adjunto. La reconciliación corrige divergencias cada 10 minutos.
  • Nada falla silenciosamente
  • Outbox pendiente y notificaciones atascadas detectadas
  • Ejecuciones desincronizadas corregidas

Casos de uso reales

“¿Por qué no salió ese mensaje?”

El detalle del cobro muestra: etapa suprimida — pago confirmado 40 segundos antes del envío. Motivo humanizado, timestamp y evidencia.

Prueba de notificación previa

Para protestar, necesitas probar que notificaste. El comprobante de entrega — protegido contra alteración — es la evidencia, con fecha, canal e ID del proveedor.

Auditoría externa

El auditor pide el historial de una deuda cuestionada. El log append-only entrega la secuencia completa: cobro, disputa, pausa, decisión y efecto — sin lagunas.

Notificaciones con comprobante de entrega y motivos de supresión

Comprobante de entrega protegido y revalidación previa al envío: cada notificación con estado y motivo.

Detalle de cobro con la telemetría completa de la regla

Telemetría completa de la regla en el detalle del cobro: por qué salió cada mensaje — o no salió.

Preguntas frecuentes

La confianza se construye con arquitectura

Mira la telemetría, el log de auditoría y el motor de envío confiable en funcionamiento.