Erlang 中 Actor 模型的特点之一是透明分布。除非我误解了,否则当你在参与者之间发送消息时,理论上你不应该假设它们在同一个进程空间中,甚至位于同一台物理机器上。
我一直认为分布式容错系统需要仔细的应用程序设计来解决围绕排序/因果关系和共识(以及其他)的固有问题。
我很确定 Erlang 不会承诺透明地解决这些问题,所以我的问题是,Erlang 开发人员如何应对这个问题?您是否将您的应用程序设计为好像所有参与者都在同一个进程空间中,然后只在实际分发它们时才解决分发问题?
如果是这样,Erlang 的这种透明分布特性是否真的只涉及用于远程消息传递的有线协议,而不是真正的透明,因为真正的分布式应用程序仍然需要在应用程序层进行仔细设计?