我想为比萨饼送货店建立一个容错的软实时网络应用程序.它应该有助于披萨店接受来自客户的电话,将它们作为订单放入系统(通过CRM网络客户端),并帮助调度员将订单分配给送货司机.
这些目标并不罕见,但我希望每周7天每天24小时提供服务,即使其具有容错能力.此外,我希望它能够非常快速地工作并且非常敏感.
下面是这种应用程序的一个非常简单的架构视图.

问题是我不知道如何使用所有Erlang/OTP优点来使应用程序具有响应性和容错性.
这是我的问题:
- 应该复制哪些系统元素以提供容错,我应该如何做?我知道我可以在复制的Mnesia数据库中存储每辆车的状态(坐标,分配的订单等).这是一个正确的方法吗?
- 哪些数据存储服务应该是传统的基于SQL的(例如基于boss_db),哪些应该在Mnesia上完成以提供非常快速的响应?是否可以使用传统的SQL数据库将客户记录和历史记录存储在这样的容错和响应速度快的应用程序中?
- 我是否应该尝试将所有服务(客户,车辆状态等)的所有数据存储在RAM中,以使应用程序具有高响应性?
- 我应该将持久性车辆数据(id,容量等)存储在传统的SQL数据库中,并将实时数据(坐标,分配的订单,主干中的订单等)存储在Mnesia数据库中,以使应用程序更多实时响应?