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
- Segundo punto de enlace webhook: transferencia
- idempotencia, reintentos y dinero
- Semana de facturación de cartera: retenciones, capturas y reembolsos en una s…
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
- Mueva el tráfico live a prepaid sin nombrar tuberías
Corte a prepaid IOSOR sin nombrar las tuberías que deja. Pruebe control de gasto, rote claves y reescriba la copia del comprador antes del volumen Live.
- Los webhooks antiguos deben drenar antes de cortar claves
Drene DLR in-flight en el endpoint antiguo antes de revocar claves. Corte solo tras quiet, luego re-pruebe el runway día-1 y el failover ordenado.