O Azure DocumentDB tornou geral o Graceful Failover — um mecanismo de failover controlado que garante zero perda de dados em trocas de região planejadas. Diferente dos failovers automáticos que priorizam velocidade, este modelo é desenhado para cenários onde a integridade dos dados vem em primeiro lugar: migrações de workloads, validação de DR runbooks e manutenções programadas.
TL;DR: O Graceful Failover do Azure DocumentDB permite trocar a região primária de forma controlada, sem perda de dados, ao drenar a fila de replicação antes da promoção. Indicado para migrações planejadas, validação de DR runbooks e manutenções programadas. Exige replicação cross-region configurada e uso da connection string global. Não substitui o HA intra-região nem o Service-Managed Failover para cenários de indisponibilidade.
Nem toda troca de região ocorre por falha. Migrar sua workload primária para outra região da Azure ou antecipar-se a uma janela de manutenção programada são movimentos estratégicos que exigem um failover que priorize a integridade dos dados acima da velocidade. Com o Graceful Failover, você inicia uma promoção controlada do seu cluster réplica para leitura e gravação, e o serviço garante que todo write commitado no primary seja replicado antes da troca. Zero perda de dados e zero surpresas.
Como funciona o Graceful Failover?
A replicação cross-region do Azure DocumentDB mantém um cluster réplica em uma região secundária, sincronizado de forma assíncrona com o primary. Em condições normais, o réplica fica atrás do primary por poucos milissegundos — o suficiente para não impactar a performance de escrita, mas próximo o bastante para uma transição limpa.
Quando você dispara um Graceful Failover, o serviço executa uma sequência ordenada:
- Drena a fila de replicação — aguarda até que o réplica na Região B esteja totalmente atualizado com o primary.
- Promove o réplica na Região B a primary.
- Rebaixa o antigo primary na Região A para somente leitura e inverte a direção da replicação.
- Redireciona automaticamente a connection string global para o novo primary.
O resultado é uma troca de região limpa, com zero perda de dados. Sua aplicação continua operando contra a connection string global de leitura e gravação, que é atualizada automaticamente sem necessidade de alteração no código.
Qual o modo de failover escolher?
O Graceful Failover é uma das três formas de promover um cluster réplica a read-write. A tabela abaixo compara os modos:
| Modo | Gatilho | Zero Data Loss | Automático |
|---|---|---|---|
| Graceful promotion | Usuário | ✅ | ❌ |
| Forced promotion | Usuário | ❌ | ❌ |
| Service-managed failover | Automático (Azure DocumentDB) | ❌ | ✅ |
O Graceful Failover é a melhor escolha quando:
- Você está executando uma migração planejada de região (comum em mudanças de tráfego de negócios).
- Deseja validar seu DR runbook sem arriscar perda de dados.
- Precisa se mover proativamente antes de uma janela de manutenção programada.
Em caso de indisponibilidade real da região primária, use Forced Promotion ou Service-Managed Failover. O Graceful Failover exige que o primary esteja acessível para drenar a fila — portanto não é adequado para cenários de outage.
Pré-requisitos para usar o Graceful Failover
- Configure replicação cross-region com um cluster réplica em uma região secundária.
- Utilize a connection string global de leitura e gravação na sua aplicação — ela será redirecionada automaticamente após a promoção.
- Inicie o Graceful Failover via Portal do Azure ou programaticamente pela API de gerenciamento.
Nenhuma alteração no lado da aplicação é necessária além do uso da connection string global.
O panorama completo: HA intra-região e DR cross-region
O Graceful Failover atende trocas de região planejadas ou proativas, mas funciona em conjunto — e não como substituto — da alta disponibilidade intra-região (in-region HA). Veja como as camadas se complementam:
- In-region HA: protege contra falhas de shard físico dentro da própria região primária, de forma automática, síncrona e com zero perda de dados.
- Graceful Failover: oferece um caminho controlado e com zero perda de dados para mover sua workload primária para outra região nos seus próprios termos.
- Service-Managed Failover: cobre o cenário não planejado, quando a intervenção humana não é rápida o suficiente.
Executar os três em combinação garante cobertura abrangente em todos os cenários de falha, em qualquer escala.
Como começar
A replicação cross-region e o Graceful Failover estão disponíveis em todas as regiões Azure que suportam Azure DocumentDB. Para mais detalhes, acesse: aka.ms/documentdb-graceful-failover.
Sobre o Azure DocumentDB
Azure DocumentDB é um serviço de banco de dados documental totalmente gerenciado para construir e modernizar aplicações compatíveis com MongoDB. Alimentado pelo motor open-source DocumentDB, ele combina APIs, ferramentas e workflows familiares com a segurança, escalabilidade e simplicidade operacional da Azure. Seja para desenvolver novos aplicativos ou migrar workloads MongoDB existentes, o Azure DocumentDB ajuda a começar rapidamente e escalar com confiança.
Perguntas Frequentes
-
O Graceful Failover elimina a necessidade de configurar alta disponibilidade intra-região?
Não. O Graceful Failover foca em trocas de região planejadas. A alta disponibilidade intra-região (in-region HA) protege contra falhas de shard físico de forma síncrona e automática, com zero perda de dados. Ambos se complementam, não substituem. -
Posso usar o Graceful Failover durante uma indisponibilidade real da região primária?
Não. O Graceful Failover exige que a região primária esteja acessível para drenar a fila de replicação. Em cenários de outage, deve-se utilizar Forced Promotion ou Service-Managed Failover, que não garantem zero perda de dados. -
Quais mudanças de aplicação são necessárias para usar o Graceful Failover?
Nenhuma mudança no código da aplicação. Basta utilizar a connection string global de leitura e gravação fornecida pelo Azure DocumentDB. Após a promoção, ela é automaticamente redirecionada para o novo primary. -
Como iniciar um Graceful Failover?
Pode ser iniciado manualmente via Portal do Azure ou programaticamente pela API de gerenciamento. É necessário que a replicação cross-region já esteja configurada com um cluster réplica em uma região secundária. -
O Graceful Failover oferece garantia de zero perda de dados?
Sim. O serviço aguarda até que toda a fila de replicação seja drenada — ou seja, todos os writes confirmados no primary sejam replicados para o secondary — antes de promover o réplica. Isso garante que nenhum dado seja perdido durante a troca.
Artigo originalmente publicado por Abinav Rameesh em Azure DocumentDB Blog.