Caso
Pasarela de pago para una plataforma fintech
Una pasarela de pago de alta carga en Laravel y Go: procesamiento de pagos con idempotencia garantizada y un tiempo de actividad del 99,98%.
- Año
- 2025
- Cliente
- Plataforma fintech (adquirencia B2B)
- Rol
- Lead Backend Engineer
Descripción
La pasarela de pago es el núcleo de la plataforma fintech a través del cual pasan todas las operaciones monetarias: aceptación de pagos, pagos a terceros, reembolsos y conciliación con los bancos adquirentes. Diseñé e implementé un sistema capaz de procesar miles de transacciones por segundo con estrictos requisitos de corrección y tolerancia a fallos. La lógica de producto y las integraciones con los proveedores están implementadas en Laravel, mientras que la capa crítica en latencia de enrutamiento y manejo de callbacks se trasladó a un servicio en Go. Todos los importes monetarios se almacenan en unidades mínimas enteras, cada operación es idempotente gracias a las claves de idempotencia, y la consistencia entre la pasarela y los proveedores se garantiza con el patrón transactional outbox y la conciliación asíncrona. Se presta especial atención a la seguridad: tokenización de los datos de pago, autorización estricta de cada acción, auditoría de todos los cambios de estado y protección contra el reprocesamiento de los callbacks. Las colas basadas en Redis procesan los webhooks de los proveedores con reintentos garantizados y protección contra duplicados, y PostgreSQL actúa como una fuente de verdad fiable con un esquema bien pensado e índices para las consultas analíticas.
Problema
La anterior integración monolítica no soportaba las cargas pico, perdía los callbacks de los proveedores y permitía el doble cargo de fondos durante los fallos de red. La conciliación con los bancos se hacía de forma manual y llevaba horas.
Solución
Extraje el dominio de pagos a un servicio separado, introduje claves de idempotencia para cada operación, implementé un transactional outbox para la publicación fiable de eventos, trasladé el manejo de callbacks a colas con deduplicación y automaticé la conciliación con los adquirentes.
Resultados
El tiempo de actividad subió al 99,98%, los cargos dobles se eliminaron por completo, el tiempo de conciliación automática se redujo de varias horas a 4 minutos y el rendimiento pico aumentó cinco veces sin degradación de la latencia.