Corrigir bugs no Event Sourcing é realmente difícil?
- Publicado em Oskar Dudycz
- Selecionado em
Todo o sistema acaba com dados incorretos. Uns vêm de integrações, outros de utilizadores a fazer coisas que ninguém previa, e uma boa parte vem de nós, porque implementámos uma alteração que parecia perfeita na revisão.
Trata-se do que podemos fazer na manhã de terça-feira, quando alguém do suporte escreve: “o preço desta reserva parece errado” .
O inseto
Imagine que estamos a trabalhar num sistema de reservas de hotel. A definição de preços é um processo complicado: os planos tarifários são revistos, são adicionados extras após a reserva e a cidade define a taxa turística de acordo com o seu próprio calendário.
Digamos que a taxa turística costumava ser um valor único, de 4,50 por pessoa por noite, multiplicado pelo número de noites e de hóspedes. Isto foi suficiente durante anos, porque a taxa nunca mudou.
De seguida, a cidade anunciou um aumento para 7,00 a partir de 1 de abril. Verificou-se que um único valor não era suficiente para representar esta situação: uma estadia de 30 de março a 2 de abril inclui noites em ambos os lados da fronteira. Por isso, adicionámos tarifas com períodos de validade e uma função de consulta para resolver esta questão, e lançámos a atualização a 12 de março.