Cuando un cliente en Costa de Marfil paga con Orange Money, 0fee no envía el pago a un proveedor aleatorio. Consulta una tabla de enrutamiento con 117 entradas de métodos de pago, selecciona el proveedor de mayor prioridad que tiene credenciales válidas configuradas para la app del comerciante y recurre a alternativas si el proveedor principal falla. Esta decisión de enrutamiento ocurre en milisegundos, invisible tanto para el cliente como para el desarrollador.
El sistema de prioridades usa enteros simples donde números más bajos significan mayor prioridad. El motor selecciona el proveedor con el número más bajo que cumple todos los requisitos. Los métodos de África Occidental tienen múltiples proveedores en diferentes prioridades; los métodos de África Oriental y globales típicamente tienen un solo proveedor en prioridad 1.
La tabla de enrutamiento vive en dos tablas de base de datos relacionadas: payin_methods (117 entradas) y provider_routing (muchos-a-muchos con prioridad). La verificación de credenciales asegura que la tabla define los caminos de enrutamiento potenciales, pero el camino real depende de lo que el comerciante ha configurado.
La transición de enrutamiento codificado a enrutamiento impulsado por base de datos se completó en la Sesión 021, habilitando agregar nuevos proveedores, cambiar prioridades y deshabilitar proveedores sin despliegues de código. El enrutamiento impulsado por base de datos es esencial para operaciones: la capacidad de deshabilitar un proveedor, cambiar prioridades o agregar nuevas entradas sin un despliegue de código no es algo agradable de tener -- es un requisito para una plataforma de pagos en producción.
Este artículo es parte de la serie "Cómo construimos 0fee.dev". 0fee.dev es un orquestador de pagos que cubre más de 53 proveedores en más de 200 países, construido por Juste A. GNIMAVO y Claude desde Abiyán sin ningún ingeniero humano. Sigue la serie para conocer la historia completa de construcción.