Una sola respuesta visible puede esconder dos ejecuciones
En una integración de inteligencia artificial (IA), el proveedor principal puede aceptar el trabajo y tardar más de lo previsto en responder. Si el sistema interpreta esa espera como fallo y envía la misma tarea a un proveedor de reserva, ambos pueden completar y contabilizar el uso. El navegador muestra el primero que llega; las dos facturas conservan la ejecución.
No agrupe todos los fallos bajo la palabra timeout. Un fallo al abrir la conexión, una demora hasta el primer byte, una interrupción a mitad del streaming y un rechazo explícito ocurren después de cantidades distintas de trabajo remoto. La conmutación segura depende de saber en cuál de esos puntos se encuentra la solicitud.
Defina qué significa «aceptado» en cada proveedor
Registre el instante de conexión, aceptación HTTP, primer byte, último byte, petición de cancelación y estado final. Añada el identificador remoto y los tokens comunicados. Si un proveedor no ofrece confirmación de cancelación, documente esa incertidumbre como posible coste duplicado; no la convierta en un cero dentro del modelo.
Para tareas idempotentes puede conservar un identificador lógico y descartar el segundo resultado, pero eso no evita necesariamente el segundo cargo. Para acciones con efectos —publicar, enviar o modificar datos—, ejecutar en paralelo puede además duplicar el efecto. Separe la continuidad de la interfaz de la garantía de una sola ejecución.
Inyecte demoras en cincuenta solicitudes de prueba
Distribuya diez solicitudes normales, diez con fallo antes de conectar, diez con demora del primer byte, diez con corte durante el streaming y diez con rechazo confirmado. Use contenido no sensible y una longitud máxima controlada. Para cada caso, anote qué proveedor aceptó, cuál completó, si la cancelación fue confirmada, cuántas llamadas fueron facturables y si el cliente obtuvo respuesta.
La prueba debe repetirse con la conmutación desactivada para conocer la latencia real del principal. Sin esa referencia, un umbral de tres segundos puede parecer razonable aunque el percentil 95 normal sea de cuatro. Evalúe coste y experiencia juntos: una estrategia que elimina duplicados pero deja sin respuesta la mitad de las solicitudes tampoco es aceptable.
| Disparador | Riesgo de doble coste | Efecto en latencia | Úselo cuando |
|---|---|---|---|
| Fallo antes de conectar | Bajo | Conmutación temprana | No hubo aceptación remota |
| Rechazo confirmado | Bajo | Depende de la rapidez del rechazo | El estado es inequívoco |
| Timeout del primer byte | Medio o alto | Reduce la espera | Existe cancelación comprobable o presupuesto para duplicidad |
| Corte durante streaming | Alto | Puede reiniciar una respuesta ya visible | La tarea admite reinicio y se informa al usuario |
| Carrera en paralelo | Muy alto | Menor latencia aparente | Solo tras aprobar coste y efectos duplicados |
Elija la política por tipo de tarea
Una consulta breve y recuperable puede conmutar tras fallo de conexión o rechazo. Una generación larga necesita quizá conservar el principal y ofrecer al cliente reintento manual. Una operación con efectos requiere una capa de idempotencia compartida antes de considerar dos proveedores. No aplique el mismo umbral a chat, generación de texto alternativo y automatización editorial.
Fije también un presupuesto de concurrencia: número máximo de solicitudes de reserva por minuto y porcentaje máximo de dobles aceptaciones. Cuando se alcance, degrade de forma explícita en vez de abrir otra carrera. La protección de gasto limita la exposición general, pero la política de conmutación debe impedir el derroche en su origen.
Despliegue con un interruptor de retirada independiente
Active primero un único tipo de fallo y un porcentaje pequeño de tráfico. El panel operativo debe mostrar proveedor elegido, motivo de conmutación, demora, cancelación y coste doble estimado. Si no puede atribuir una solicitud a una fila de la matriz, no amplíe el despliegue: la observabilidad aún no permite gobernar la decisión.
Conserve la matriz, el resultado de las cincuenta pruebas y la fecha de revisión. Compare después con facturas reales, porque una cancelación técnica no siempre equivale a ausencia de facturación. Pro y Smart Protection pueden ser una barrera adicional en rutas cubiertas; no deben presentarse como garantía de cancelación dentro de servicios externos.
Use la Matriz de decisión para dos proveedores de «Conmutación entre proveedores: evite pagar el timeout y la respuesta de reserva» en una primera instalación real. Descargue AI Cost Circuit Breaker gratis, empiece en Monitoring y active el bloqueo solo después de verificar señales y reversión.