Lo que no controlamos · Episodio 1 de 6
El antifraude lento que lo tumba todo
Un martes a las ocho de la tarde, el antifraude comprado empieza a tardar ocho segundos en cada evaluación. Nadie lo ha apagado, y sin embargo Laura ya no puede enviar un Bizum ni mirar su saldo. Fraude no está caído: está lento, y es peor.
El punto de partida
El dinero no se duplica terminó con una pregunta que no se puede resolver dentro del banco: qué pasa cuando quien falla es otro sistema. New Capital Bank depende de piezas que no controla. El core bancario y el antifraude los compra; la red de tarjetas, Bizum y los otros bancos son de terceros o de la matriz. Todos pueden tardar, fallar o responder dos veces.
Lo que sí controla el banco es cómo se comporta cuando eso pasa. Y lo primero que enseña la experiencia es que un fallo no se queda donde nace: viaja por las llamadas y arrastra a quien las hace.
Un martes a las ocho
Operaciones atiende los envíos de Bizum y las transferencias. Cada una llama a Fraude, que consulta al antifraude comprado. Operaciones tiene diez plazas de atención: mientras una llamada está en curso, su plaza está ocupada, y si no hay plazas libres, la petición espera en cola. Llegan ocho peticiones por segundo.
En la simulación, cada cuadrado es una plaza. Arranca el reloj y pon el antifraude «lento». A la izquierda, Operaciones espera a Fraude lo que haga falta. A la derecha, corta la llamada pasado un tiempo máximo que eliges tú. Luego prueba con el antifraude «caído».
Qué ha pasado
- Lento retiene. Una llamada que tarda ocho segundos ocupa su plaza ocho segundos. Para sostener 8 peticiones por segundo hacen falta 8 × 8 = 64 plazas; hay diez. Las plazas se agotan, la cola crece y Laura se rinde. Y como las plazas son las mismas para todo lo que hace Operaciones, tampoco funciona lo que no necesitaba a Fraude.
- Caído no retiene. Si la conexión se rechaza al instante, la plaza se libera al instante. Las peticiones fallan, pero fallan rápido y todo lo demás sigue en pie. Es la paradoja: un servicio caído es más fácil de soportar que uno lento.
- El tiempo máximo corta la retención, pero no cualquiera sirve. Con 3 segundos hacen falta 8 × 3 = 24 plazas y siguen sin caber. Con 1 segundo, 8 plazas, y sí. La regla es de aritmética: las plazas ocupadas son el ritmo de peticiones por lo que tarda cada una. El tiempo máximo tiene que ser el que hace que esa cuenta salga.
Y fallar rápido tiene un coste: Laura recibe un error. No es una decisión técnica sino de negocio: cuánto tiempo se espera antes de rendirse, y qué se le dice al cliente cuando se acaba.
Un tiempo máximo por salto, o un presupuesto
Hay un segundo problema, más sutil. Un pago con tarjeta cruza cuatro piezas: la red de tarjetas, Tarjetas, Fraude y el antifraude. La red se rinde a los tres segundos. Si cada pieza espera a la siguiente con su propio tiempo máximo (el que traía la librería, cinco segundos), puede que el antifraude vaya lento y, cuando la red ya se ha ido, Tarjetas y Fraude sigan trabajando para nadie.
La alternativa es un presupuesto de tiempo que viaja con la petición: quien pide dice cuánto tiempo hay y cada pieza pasa a la siguiente lo que queda, descontando lo que le toca para responder. Lanza el pago con tarjeta con el antifraude muy lento y compara los dos paneles.
Lo que tarda ocho segundos y es normal
Laura quiere enviar 800 € a una amiga en Tokio. Las transferencias internacionales salen por un banco corresponsal que New Capital Bank no controla, y que acusa recibo en hasta diez segundos. Con el tiempo máximo de cinco segundos que valía para las tarjetas, se rechaza una transferencia que iba perfectamente: el corresponsal habría acusado recibo a los ocho segundos.
Cambia a «transferencia internacional» y lanza con el corresponsal normal. Ahí está la segunda lección del presupuesto: no es una propiedad del servicio al que se llama, sino de lo que se pide. Un pago con tarjeta tiene tres segundos porque hay alguien en un comercio esperando; una transferencia internacional tiene treinta porque Laura ya ha cerrado la app.
Para llevarse
- Un servicio lento es más peligroso que uno caído: retiene a quien lo llama y el fallo se propaga hasta que se agotan las plazas de todos.
- El tiempo máximo tiene que ser el que hace que la cuenta salga: plazas ocupadas = ritmo × tiempo. Fallar rápido es un coste que se acepta a propósito.
- Un presupuesto que viaja evita el trabajo huérfano y se fija por operación, no por servicio.
Aquí el fallo se propagó porque todo compartía las mismas plazas. El siguiente episodio es sobre cómo impedirlo desde el diseño: que lo lento no tenga acceso a lo que es de otro.
Siguiente Episodio 2 · Que el extracto no tumbe los pagos Los extractos del domingo agotan las conexiones que necesitan los pagos. Bulkhead.