01
A escrita única não é uma limitação técnica, é um contrato de consistência
A discussão sobre multi-região costuma começar errada porque trata a escrita única como uma etapa provisória, algo que se resolve depois com um banco multi-master. A topologia de escrita única existe porque ela é a única que permite manter uma ordem total dos eventos sem coordenação distribuída no caminho crítico. Existe um único lugar onde a sequência de commits é decidida, e por consequência existe uma única resposta para perguntas como qual foi a última alteração desse pedido. Quando você distribui a escrita, essa pergunta deixa de ter resposta única e passa a exigir resolução de conflito, que é uma decisão de negócio, não uma configuração de banco.
O que muda com a segunda região não é a capacidade de escrita, é a geografia da leitura. As réplicas locais transformam consultas de duzentos milissegundos em consultas de vinte, e isso é uma melhoria real e mensurável. O custo aparece porque a réplica local está sempre atrasada em relação ao primário, e esse atraso não é ruído: é o tempo de propagação da rede mais o tempo de aplicação do log, tipicamente entre trinta e cento e cinquenta milissegundos entre continentes em condição saudável, e segundos inteiros durante uma rajada de escrita ou uma manutenção do primário.
A consequência prática é que um sistema que antes tinha uma única classe de leitura passa a ter duas, e a distinção entre elas não é técnica. Ela depende de quem está lendo e do que essa pessoa acabou de fazer. Um relatório de vendas do mês passado tolera meio segundo de atraso sem nenhum problema, porque nenhum humano consegue notar. A tela que aparece imediatamente após o usuário salvar um formulário não tolera nem quarenta milissegundos, porque o usuário sabe exatamente o que acabou de escrever e vai comparar. Classificar as operações nessas duas categorias é o trabalho central de uma migração multi-região, e ele é feito no código de aplicação, não na configuração do banco.
| Operação | Onde ler | Atraso tolerado | O que acontece se errar a escolha |
|---|---|---|---|
| Catálogo de produtos, listagem pública | Réplica local | Segundos | Nada perceptível, e ler do primário desperdiça latência |
| Tela imediatamente após salvar um cadastro | Primário ou réplica com marca de versão | Zero | Usuário vê o valor antigo e salva de novo, gerando duplicidade |
| Saldo antes de autorizar uma transferência | Primário, sempre | Zero | Autoriza operação sobre saldo que já foi consumido |
| Relatório analítico do período fechado | Réplica local ou réplica dedicada | Minutos | Nenhum impacto, e ler do primário concorre com o tráfego transacional |
| Verificação de permissão após troca de perfil | Primário até a replicação alcançar | Zero | Usuário mantém acesso que acabou de ser revogado |