Eventual Consistency
Consistência Eventual
A consistência eventual permite que cópias de dados discordem por um tempo após uma alteração. Se novas alterações pararem e as atualizações continuarem funcionando, as cópias devem coincidir.
source commit -> event/change -> consumer lag -> projection update -> measured convergencesource commit -> event/change -> consumer lag -> projection update -> measured convergenceJOBOutro exemplo
Um catálogo renomeia o produto `42` para “Ocean”. A página do produto lê o novo nome imediatamente. O texto da busca permanece antigo por três segundos enquanto um consumidor de eventos se atualiza. Um sinal de atraso retorna a zero quando ambos coincidem.
Partes principais
- 01Fonte da verdade
- 02Evento de alteração
- 03canal assíncrono
- 04ponto de verificação do consumidor
- 05Janela obsoleta e atraso
- 06Convergência ou reparo
Use-o quando
Use-o para cópias de pesquisa, análises ou serviços separados que possam aceitar com segurança um atraso medido. Meça esse atraso. Dê às pessoas uma maneira de reparar ou enviar novamente as alterações perdidas.
Não o use quando
Não o use quando uma decisão precisar do valor mais novo imediatamente. Um exemplo é verificar permissão antes de uma ação sensível. Informe quando as cópias devem coincidir e o que acontece após uma falha.
Nome usado no código
source commit -> event/change -> consumer lag -> projection update -> measured convergence Antes de lançar
Check contracts and invariants, authorization, and input limits. Test retries, one-time effects, timeouts, and partial failures. Verify data integrity, compatibility, monitoring, recovery, and rollback.
Outcome: Complete the task with Consistência Eventual (Eventual Consistency). User context: Um catálogo renomeia o produto `42` para “Ocean”. A página do produto lê o novo nome imediatamente. O texto da busca permanece antigo por três segundos enquanto um consumidor de eventos se atualiza. Um sinal de atraso retorna a zero quando ambos coincidem. Technical concept or control: Consistência Eventual (Eventual Consistency). Why it fits: Use-o para cópias de pesquisa, análises ou serviços separados que possam aceitar com segurança um atraso medido. Meça esse atraso. Dê às pessoas uma maneira de reparar ou enviar novamente as alterações perdidas. Do not use it when: Não o use quando uma decisão precisar do valor mais novo imediatamente. Um exemplo é verificar permissão antes de uma ação sensível. Informe quando as cópias devem coincidir e o que acontece após uma falha. Engineering requirements: Define inputs, outputs, contracts, and rules that must always hold. Set authorization and input checks. Define failures, timeouts, retries, one-time effects, data moves, and compatibility limits. Operations: Add useful signals and logs that hide sensitive data. Set capacity limits and write an operator guide. Test recovery and rollback. Acceptance criteria: Contract and failure-path tests pass. Data and authorization rules still hold during retries and partial failures. Check performance limits, monitoring, recovery, and rollback. Evidence and limits (evidence boundary): Nenhum padrão oficial único controla todo o termo. Seu significado pode mudar entre equipes, plataformas ou frameworks. Unknowns to confirm: Where the code runs, data stores, traffic shape, consistency needs, and the security boundary. Also confirm the compatibility period, service goals, and rollback limits.
Conferir este pedido
Review how Consistência Eventual (Eventual Consistency) is used now. Definition: A consistência eventual permite que cópias de dados discordem por um tempo após uma alteração. Se novas alterações pararem e as atualizações continuarem funcionando, as cópias devem coincidir. Release checks: Check contracts and invariants, authorization, and input limits. Test retries, one-time effects, timeouts, and partial failures. Verify data integrity, compatibility, monitoring, recovery, and rollback. Before changing code, list the evidence, gaps, severity, and the smallest safe fix.