Một trong các tính năng của mô hình diễn viên trong Erlang là phân phối trong suốt. Trừ khi tôi hiểu sai, khi bạn gửi thông điệp giữa các diễn viên, về mặt lý thuyết bạn không nên giả định rằng họ đang ở trong cùng một không gian quy trình hoặc thậm chí là đồng đặt trên cùng một máy vật lý.Sự hỗ trợ của Erlang đối với phân phối * trong suốt * của các tác nhân tác động đến thiết kế ứng dụng như thế nào?
Tôi luôn bị ấn tượng rằng các hệ thống chịu lỗi, phân phối yêu cầu thiết kế ứng dụng cẩn thận để giải quyết các vấn đề cố hữu xung quanh ordering/causality và consensus (trong số những người khác).
Tôi khá chắc chắn rằng Erlang không hứa sẽ giải quyết các lớp này của các vấn đề một cách minh bạch, vì vậy câu hỏi của tôi là, làm thế nào để các nhà phát triển Erlang đối phó với điều này? Bạn có thiết kế ứng dụng của mình như thể tất cả các diễn viên đang ở trong cùng một không gian quy trình và sau đó chỉ giải quyết các vấn đề phân phối khi đến lúc thực sự phân phối chúng?
Nếu vậy, là này minh bạch tính năng phân phối của Erlang thực sự chỉ quan tâm đến giao thức dây sử dụng để nhắn tin từ xa và không thực sự suốt theo nghĩa là một ứng dụng phân tán đúng vẫn đòi hỏi thiết kế cẩn thận trong lớp ứng dụng?
Re: synchronicity, tôi đã đề cập đến các mối quan hệ nhân quả và các vấn đề đặt hàng sự kiện phát sinh trong các hệ thống phân tán chịu lỗi nhiều hơn "đồng bộ hóa dữ liệu". Tôi sẽ xem liệu tôi có thể làm rõ phần đó một chút không. –