Saltar al contenido principal
FLEXORA

Modificar un pedido en curso sin corromper el total

Evitar que dos modificaciones legítimas y concurrentes de un pedido ya existente corrompan su total calculado.

Última actualización: 2026-09-18 · Responsable: Equipo de ingeniería de Flexora

Alternativas consideradas

Descartada
Agregar items mediante cambios separados y confiar solo en idempotencia.
Elegida
Incorporar los items, resolver sus precios y recalcular todos los items vigentes dentro de una única transacción con reintento.

Decisión tomada

Definir una operación para agregar varios items a un pedido existente, resolver los precios al agregarlos y recalcular el pedido completo dentro de una única operación transaccional con reintento.

Justificación

La idempotencia por sí sola no cubre dos modificaciones diferentes que ocurren de forma concurrente. Recalcular dentro de una única operación protege el total denormalizado.

Evidencia de aplicación

Se confirmó un caso real de agregar ítems a un pedido que ya estaba listo. La operación definida para resolverlo todavía no estaba implementada al momento de este registro.

Preguntas frecuentes

¿Qué decidió Pyae sobre "modificar un pedido en curso sin corromper el total"?
Definir una operación para agregar varios items a un pedido existente, resolver los precios al agregarlos y recalcular el pedido completo dentro de una única operación transaccional con reintento.
¿Hay evidencia de esta decisión en producción?
Se confirmó un caso real de agregar ítems a un pedido que ya estaba listo. La operación definida para resolverlo todavía no estaba implementada al momento de este registro.
¿Qué es una condición de carrera al modificar un pedido?
Es cuando dos modificaciones legítimas y concurrentes sobre el mismo pedido corrompen su total calculado, porque cada una parte de un estado que la otra ya cambió. Pyae confirmó un caso real de agregar ítems a un pedido que ya estaba listo.
¿Por qué no alcanza con idempotencia para modificaciones concurrentes?
La idempotencia protege ante reintentos de una misma solicitud, pero no cubre dos modificaciones diferentes que llegan al mismo tiempo. Pyae define una única operación transaccional con reintento para resolver ese caso.
¿Cómo se recalcula el total de un pedido sin corromperlo?
Incorporando los items, resolviendo sus precios y recalculando todos los items vigentes dentro de una única operación transaccional con reintento, en vez de aplicar cada modificación como un cambio aislado.

Este tipo de decisiones también aplica a tu proyecto

Si tu operación necesita una solución a medida con decisiones técnicas documentadas y sostenibles en el tiempo, podemos ayudarte a definirlas.