Modificar um pedido em andamento sem corromper o total
Evitar que duas modificações legítimas e concorrentes de um pedido já existente corrompam seu total calculado.
Última atualização: 2026-09-18 · Responsável: Equipe de engenharia da Flexora
Alternativas consideradas
- Descartada
- Adicionar itens por meio de mudanças separadas e confiar apenas na idempotência.
- Escolhida
- Incorporar os itens, resolver seus preços e recalcular todos os itens vigentes dentro de uma única transação com retry.
Decisão tomada
Definir uma operação para adicionar vários itens a um pedido existente, resolver os preços ao adicioná-los e recalcular o pedido completo dentro de uma única operação transacional com retry.
Justificativa
A idempotência sozinha não cobre duas modificações diferentes que ocorrem de forma concorrente. Recalcular dentro de uma única operação protege o total desnormalizado.
Evidência de aplicação
Foi confirmado um caso real de adição de itens a um pedido que já estava pronto. A operação definida para resolvê-lo ainda não estava implementada no momento deste registro.
Perguntas frequentes
- O que a Pyae decidiu sobre "modificar um pedido em andamento sem corromper o total"?
- Definir uma operação para adicionar vários itens a um pedido existente, resolver os preços ao adicioná-los e recalcular o pedido completo dentro de uma única operação transacional com retry.
- Existe evidência dessa decisão em produção?
- Foi confirmado um caso real de adição de itens a um pedido que já estava pronto. A operação definida para resolvê-lo ainda não estava implementada no momento deste registro.
- O que é uma condição de corrida ao modificar um pedido?
- É quando duas alterações legítimas e concorrentes no mesmo pedido corrompem seu total calculado, porque cada uma parte de um estado que a outra já alterou. O Pyae confirmou um caso real de adição de itens a um pedido que já estava pronto.
- Por que a idempotência não é suficiente para modificações concorrentes?
- A idempotência protege contra novas tentativas de uma mesma solicitação, mas não cobre duas modificações diferentes que chegam ao mesmo tempo. O Pyae define uma única operação transacional com retry para resolver esse caso.
- Como recalcular o total de um pedido sem corrompê-lo?
- Incorporando os itens, resolvendo seus preços e recalculando todos os itens vigentes dentro de uma única operação transacional com retry, em vez de aplicar cada modificação como uma alteração isolada.
Esse tipo de decisão também vale para o seu projeto
Se a sua operação precisa de um software sob medida com decisões técnicas documentadas e sustentáveis no tempo, podemos ajudar a defini-las.