Construindo um aplicativo da web em tempo real suave tolerante a falhas com o Erlang / OTP

Eu gostaria de criar um aplicativo web em tempo real suave tolerante a falhas para uma loja de entrega de pizzas. Ele deve ajudar a pizzaria a aceitar chamadas telefônicas de clientes, colocá-las como pedidos no sistema (por meio de um cliente da Web do CRM) e ajudar os expedidores a atribuir drivers de entrega aos pedidos.

Essas metas não são nada incomuns, mas eu gostaria de disponibilizar o serviço 24 horas por dia, 7 dias por semana, ou seja, torná-lo tolerante a falhas. Além disso, gostaria de fazê-lo funcionar muito rápido e ser muito responsivo.

Abaixo está uma visão de arquitetura muito simples para tal aplicação.

O problema é que eu não sei como usar toda a bondade Erlang / OTP para tornar a aplicação muito responsiva e tolerante a falhas.

Aqui estão minhas perguntas:

Quais elementos do sistema devem ser replicados para fornecer tolerância a falhas e como devo fazer isso? Eu sei que posso armazenar o status de cada veículo (coordenadas, ordens atribuídas, etc.) em um banco de dados Mnesia replicado. Esse é um caminho certo a seguir?Quais serviços de armazenamento de dados devem ser baseados em SQL convencional (por exemplo,boss_db) e qual deve ser feito na Mnesia para fornecer uma resposta muito rápida? Há algum problema em usar um banco de dados SQL convencional para armazenar registros e histórico de clientes em um aplicativo tolerante a falhas e altamente responsivo?Devo tentar armazenar todos os dados de todos os serviços (clientes, status de veículos, etc.) na RAM para tornar o aplicativo altamente responsivo?Devo armazenar os dados persistentes do veículo (id, capacidade, etc.) em um banco de dados SQL convencional e armazenar os dados em tempo real (coordenadas, pedidos atribuídos, pedidos no tronco, etc.) em um banco de dados Mnesia para tornar o aplicativo mais responsivo em tempo real?

questionAnswers(2)

yourAnswerToTheQuestion