Laura no ve su Bizum · Episodio 2 de 6
Laura no ve su Bizum
Laura envía 50 € a Marcos. La app dice «enviado»; Laura abre el extracto y el Bizum no está. Desconfía y envía otro. El banco no ha fallado: la primaria lo tiene, la réplica de la que sale el extracto, todavía no.
El punto de partida
Con las réplicas del episodio anterior, el extracto sale de una copia de Cuentas que se mantiene al día con los cambios de la primaria. Casi siempre funciona. Pero entre que la primaria confirma un cambio y la réplica se entera pasa un tiempo: el retraso de replicación.
Es lo que pasa cuando se elige la replicación asíncrona, como el banco hizo en el episodio 7 de El dinero no se duplica: la primaria confirma sin esperar a la réplica. A cambio de no esperar, quien lee de la réplica puede ver un dato de hace un momento.
El Bizum que no sale
Laura envía 50 € a Marcos. La app dice «enviado» y, medio segundo después, abre el extracto. Elige cuánto tarda la réplica en enterarse y mira si Laura ve su Bizum. Marca también si, cuando no lo ve, vuelve a enviarlo.
Qué ha pasado
- Nada ha fallado. La primaria registró el Bizum y la app dijo la verdad. La lectura del extracto, que va a la réplica, llegó antes que el cambio.
- El retraso importa por lo que hace quien lee. Con 0,2 s, Laura llega al extracto cuando la réplica ya lo sabe. Con 1 s o 5 s, no. La app es la misma; cambia solo lo que tarda la copia.
- Laura toma una decisión sin saberlo. Si duda y vuelve a enviar, no pulsa dos veces el mismo botón: abre la pantalla de enviar y hace una operación nueva. La clave de idempotencia del episodio 1 de El dinero no se duplica protege la repetición de una petición, no una segunda intención. Marcos recibe 100 €.
Es la misma conclusión de aquella serie, vista desde el lector: el dinero no se duplica por un fallo técnico, sino porque Laura no ve lo que ha hecho.
¿Cuánto tarda de verdad?
En la simulación anterior elegías el retraso. En un banco, no se elige: es lo que sale. Y no es constante. Una réplica hace dos cosas con la misma máquina: aplica los cambios que llegan de la primaria y responde lecturas. Cada extracto o ficha pesada que sirve le resta capacidad para lo primero.
La primaria registra 6 cambios por segundo. La réplica puede aplicar hasta 12, menos casi uno por cada lectura por segundo que atiende. Arranca la simulación y sube las lecturas poco a poco. Después, prueba la hora punta de escrituras.
Tres lectores, tres tolerancias
- Con pocas lecturas, la réplica sobra: aplica más de lo que llega y el retraso se queda en décimas de segundo.
- Con muchas, no aplica todo lo que llega, los cambios pendientes se acumulan y el retraso sube un poco más cada segundo. Una réplica que sirve más lecturas se retrasa más.
- En la hora punta de escrituras, el margen desaparece aunque nadie lea más: el retraso depende de lo que escribe otro.
Y la tolerancia depende de quién lee. Laura necesita menos de medio segundo, porque acaba de actuar. Atención al cliente tolera hasta un minuto: la agente de Atención que abre la ficha mientras Laura le cuenta que su Bizum no sale tampoco lo verá si el retraso es de un minuto, pero lo normal es que no tenga que verlo al instante. Cumplimiento tolera un día. El retraso es el mismo; lo que cambia es qué lector se entera de que existe.
Para llevarse
- Con la replicación asíncrona, la réplica va por detrás de la primaria, y quien lee de ella puede ver un dato de hace un momento.
- El retraso no es un número que se prometa: crece cuando la réplica sirve más lecturas o cuando llegan más escrituras. Se vigila.
- No es un fallo, pero hace que Laura no vea lo que acaba de hacer, y eso sí hay que arreglarlo: hay que decidir de dónde lee cada lector.
La solución no puede ser mandar todas las lecturas a la primaria otra vez. Hay formas de dar a Laura lo suyo sin renunciar a las réplicas.
Siguiente Episodio 3 · Ver lo que acabas de hacer Leer lo propio y lecturas monótonas: cómo se consigue que Laura vea su Bizum sin renunciar a las réplicas.