Estou construindo uma solução onde eu terei uma dúzia de intances do meu App (Android / iOS) rodando em celulares / tablets, assim como algumas páginas web em navegadores. Todos estão se conectando ao meu aplicativo SaaS na Internet (ex: www.myapp.com para o site e www.app.myapp.com para serviços do Apps REST / GraphQL).
Tudo bem, mas esta aplicação é crítica e meu cliente tem problemas de qualidade de internet, então a idéia é replicar os servidores em sua rede local. Dessa forma, eu terei o MAINSERVER na internet e o FAILOVERSERVER na minha rede local.
O mecanismo de replicação garantirá que os dois bancos de dados estejam sincronizados quando a Internet estiver ligada e sincronizada assim que a Internet for recuperada de uma falha.
Minha dúvida é como garantir que meu aplicativo e a Web sejam redirecionados para o servidor correto. Algo como, se eu tiver internet, tanto www.myapp.com e www.app.myapp.com apontará para MAINSERVER. Em caso de falha, ambos os endereços precisam apontar para FAILOVERSERVER e voltar para MAINSERVER na recuperação.
Perguntas:
a) Essa estratégia é correta para manter meus aplicativos em funcionamento em caso de falha na Internet? Existem maneiras melhores de lidar com isso?
b) Isso é tratado apenas com ferramentas de rede (um DNS local, por exemplo) ou devo precisar de um esforço extra no aplicativo?
c) Meus servidores são LINUX, então existem ferramentas disponíveis para facilitar a vida aqui?
Agradecemos antecipadamente por ajudar.