PostgreSQL 19 incorpora el comando WAIT FOR LSN, una primitiva que permite a un cliente bloquearse en una réplica hasta que esta haya aplicado una posición concreta del Write-Ahead Log (WAL). El problema que resuelve es conocido: en arquitecturas con réplica de lectura, una escritura confirmada en el primario puede no estar visible todavía en el secundario por el retraso de replicación, lo que provoca lecturas que pierden datos recién guardados por el propio usuario. El fenómeno se agrava en aplicaciones reactivas y herramientas colaborativas, donde múltiples pestañas y websocket disparan lecturas contra la misma réplica.
Hasta ahora las soluciones habituales pasaban por fijar las lecturas al primario —lo que anula el propósito de la réplica—, introducir retardos con sleep, o usar banderas en Redis, parches que adivinan el desfase en lugar de medirlo. WAIT FOR LSN consulta directamente al secundario: este ya conoce su posición de replay, y el comando espera de forma bloqueante hasta alcanzarla.
Las pruebas de la autora, ejecutadas con PostgreSQL 19 beta 3 sobre un primario y una réplica asíncrona en el mismo host, comparan cuatro estrategias. Leer del primario de forma fija da cero lecturas obsoletas a costa de no usar la réplica. Leer de la réplica sin más produce lecturas obsoletas en el 99,2 % de los casos. Esperar 50 ms con sleep las elimina, pero dispara la latencia p50 hasta 53,9 ms. Con WAIT FOR LSN se obtiene cero lecturas obsoletas con una p50 de 2,8 ms: apenas uno o dos milisegundos más que ir al primario.
El comando admite opciones clave como MODE 'standby_replay' (esperar a que la transacción sea visible para consultas, no solo escrita o flushed en disco) y TIMEOUT, que convierte la garantía de lectura en una decisión de arquitectura: superado el plazo, la aplicación debe enrutar la consulta al primario. La comparación con synchronous_commit = remote_apply muestra que este ajuste paga el coste de la espera en cada escritura —incluidos trabajos batch y migraciones— mientras que WAIT FOR lo aplica solo al lector que lo necesita, de forma acotada y en el momento adecuado.
