Skip to main content

🔔 Timbrador 2.0 (Balanceador y Enrutador Multi-PAC)

El Timbrador 2.0 es un middleware de arquitectura orientada a eventos desarrollado para Alpura, diseñado para gestionar, balancear y garantizar el procesado tolerante a fallos de comprobantes fiscales digitales (CFDI) mediante la integración con múltiples Proveedores Autorizados de Certificación (PACs).


📌 Objetivos Principales​

  • Multi-PAC Dynamic Routing: Balanceo inteligente de peticiones de timbrado entre múltiples PACs (ej. Click Factura, Pegaso) según disponibilidad, costos o políticas de negocio.
  • Tolerancia a Fallos y Contingencia Escalonada (Fallback): Reintentos locales automáticos y redirección transparente hacia un PAC secundario/terciario si el PAC principal presenta degradación o caídas.
  • Anti-Duplicidad Estricta: Verificación previa de sellado en la autoridad fiscal/PAC antes de ejecutar la contingencia para evitar timbrar el mismo comprobante dos veces.
  • Notificación Asíncrona vía Webhook: Envío de callback HTTP POST al cliente originador para informar del resultado definitivo (Éxito, Error de Negocio o Fallo Definitivo).
  • Observabilidad y Telemetría: Endpoints REST de auditoría para consultar el estado actual del comprobante y el historial completo de eventos (Event Sourcing).

🏗️ Componentes del Sistema​

ComponenteDescripción
API Receptor RESTRecibe peticiones de timbrado síncronamente, registra la transacción inicial y responde de inmediato 202 Accepted con un trackingId.
Google Cloud Pub/SubMessage Broker desacoplado con colas por PAC (Queue 1..N) y cola de mensajes muertos (DLQ).
Connectors (Workers)Consumidores independientes por cada PAC que ejecutan llamadas SOAP/WSDL, reintentos y validaciones anti-duplicidad.
DB Control (PostgreSQL)Base de datos relacional para el seguimiento transaccional e historial cronológico (transaccion_timbrado e historial_timbrado).
Alert Manager (Notificador)Proceso de alerta temprana que detecta fallos en la DLQ y notifica al equipo de soporte.

📖 Contenido de la Documentación​

  • 📐 High-Level Design (HLD): Especificación arquitectónica detallada, diagrama de componentes, flujos de secuencia y modelo de datos.