Acho que você está perguntando: como posso ter bancos de dados multi-mestre com failover automático. Se esta não é a sua pergunta, então, por favor, esclareça. Se esta é a sua pergunta, então continue a ler.
Na verdade, eu escrevi um aplicativo da web para a mesma coisa, exceto que ele não usa cartões Mifare 1K, ele usa cartões simples de código de barras (é chamado LATRIX e está disponível no sourceforge, espero que isso não seja muito conectando aqui).
A questão principal aqui é que, se sua conexão de rede com o computador real executando o frontend ficar inativa, você estará um pouco empacado. É claro que você poderia executar um banco de dados local e implementar algum mecanismo de sincronização de volta a um banco de dados mestre, mas desde que a sincronização não esteja funcionando (devido à ausência de rede), você não tem chance de acertar isso.
Portanto, a primeira coisa a fazer é garantir que você tenha conectividade de rede confiável. Sem isso, você sempre vai lutar. O LATRIX não usa bancos de dados locais ou bancos de dados multi-mestres, ele simplesmente verifica se a conexão de rede com o servidor de banco de dados está funcionando. Caso contrário, o terminal front-end ficará passivo (ou seja, os usuários não poderão fazer check-in), pois não consegui descobrir uma solução adequada para conexões de rede indisponíveis.