IOSOR Guías

Riesgo de ventana dual-write durante el cutover

Dos webhooks por un mensaje son un hazard de débito y DLR. Limite la ventana dual-write, deduplique eventos de dinero y salga con un solo dueño de ledger.

Una ventana dual-write significa que el mismo mensaje saliente puede golpear dos endpoints webhook — viejo y nuevo — mientras el cutover no está cerrado. No es una red de seguridad; es un hazard de débito y DLR. Finanzas ve filas gemelas; ops ve relojes «delivered» gemelos; el comprador ve un ledger que ya no coincide con el envío que recuerda.

Los cutovers IOSOR tratan dual-write como excepción temporizada con dueño de salida. Si ambos endpoints quedan Live sin historia de idempotencia, holds y facturas derivan toda la semana de factura.

Nombre la ventana dual-write antes de dividir el tráfico

Escriba hora de inicio, fin y dueño de salida antes de que un segundo endpoint reciba eventos de producción. Publique la ventana en el ticket de corte para que developers no «extiendan en silencio» cuando el DLR se ponga nervioso. Una ventana sin nombre se vuelve un fork permanente.

Liste qué tipos de evento pueden dual-write (solo DLR, o send+DLR). Los pares prohibidos van en el título del ticket, no en un chat de pasillo tras el primer doble débito.

Deduplique eventos de dinero mientras dos endpoints están Live

Mapee cada payload webhook a una clave de idempotencia que finanzas pueda citar. Rechace o fusione eventos delivered/failed duplicados para que la billetera abra un hold y cierre un débito por message id. Los reintentos están permitidos; el dinero doble no.

Si el endpoint viejo y el nuevo discrepan sobre el estado final, congele el message id y exporte ambos payloads. No deje que la semana de factura reconcilie «ambos» como dos filas facturables.

Limite la ventana con un reloj de salida duro

Fije una duración máxima dual-write y un kill switch que detenga el endpoint viejo cuando el reloj llegue a cero. Extienda solo con un cambio escrito y un reloj nuevo — nunca dejando ambas URL en el almacén de secretos «hasta el próximo sprint».

Empareje el reloj con una checklist de handover del segundo endpoint para que ops sepa qué URL queda dueño único. Un suave «lo vigilaremos» no es una salida.

Pruebe un solo dueño de ledger tras el corte

Cuando el endpoint viejo se detenga, exporte hold-versus-debit por las horas dual-write y la primera hora silenciosa después. Confirme un dueño de billetera por message id. Solo entonces marque cutover complete en el ticket.

Si quedan filas gemelas, reabra la lista de freeze antes de subir volumen piloto. El residuo dual-write es un defecto de ops, no un debate de pricing.

Rutas operativas relacionadas

Comience con IOSOR

Nombre el reloj dual-write y el dueño, cablee idempotencia en eventos de dinero y ponga el kill switch en la URL antigua. Pase un corredor por la ventana, exporte filas de riesgo gemelo y salga a un solo endpoint antes de que cierre la semana de factura.

Conclusión IOSOR

Dual-write es un hazard temporizado, no una manta de confort: dos webhooks por un mensaje pueden duplicar DLR y débito. Limite la ventana, deduplique dinero con idempotencia y pruebe un solo dueño de ledger antes de declarar el cutover terminado.

¿Fue útil esta guía?

Guías relacionadas