Réplicas de leitura e o lag de replicação
Pergunta
Adicionar réplicas de leitura escala a leitura de um banco. Que problema o lag de replicação cria e como lidar?
Resposta esperada
As réplicas recebem as escritas da primária de forma assíncrona, então ficam alguns milissegundos (às vezes segundos, sob carga) atrás. Problema clássico: o usuário faz uma escrita (posta um comentário), a resposta seguinte lê de uma réplica que ainda não recebeu a mudança, e o comentário 'some' — 'read your own writes' quebrado. Formas de lidar: rotear as leituras logo após uma escrita daquele usuário pra primária (sticky por uma janela de tempo); ler da primária só nos fluxos onde a consistência importa e aceitar réplica no resto; usar 'read from replica but check lag' (se a réplica está muito atrás, cai pra primária); ou tornar a UI otimista (mostrar localmente o que o usuário acabou de escrever). O ponto é decidir conscientemente por endpoint quais toleram dados um pouco velhos.
Por que perguntam isso
Pergunta pleno/sênior. Termo-chave: 'read your own writes'. Conecta com consistência eventual da arquitetura.