Дистанционная связь - это, по сути, всегда асинхронная передача сообщений.
В OOP межобъектная связь обычно осуществляется посредством синхронных вызовов методов (т. Е. Блоков вызовов, пока не будет получен результат). Таким образом, чтобы обмениваться данными с удаленными объектами, нужно либо использовать механизм RP C, который оборачивает основную асинхронную передачу сообщений, чтобы представить синхронный интерфейс, либо использовать что-то вроде фьючерсов, чтобы сделать интерфейс гибридным синхронным и асинхронным. Оба подхода добавляют много сложности: механизмы RP C имеют тенденцию добавлять много скрытой сложности, а фьючерсы имеют тенденцию добавлять много кажущейся сложности.
Для актеров связь представляет собой асинхронную передачу сообщений. Единственная концептуальная разница между отправкой сообщения субъекту Akka, работающему в той же JVM, что и отправитель, и субъекту Akka, работающему в другой JVM (той же или другой машине), заключается в том, что в первом случае можно оптимизировать, не сериализовав сообщение , Помимо внутренних издержек, связанных с установлением связи между двумя различными JVM, нет никакой дополнительной сложности в том, чтобы заставить актера взаимодействовать удаленно. Если два актера могут успешно работать вместе на месте, чтобы создать работающую систему, практически наверняка они могут легко (например, с удаленным взаимодействием Akka) работать вместе, даже когда им нужно общаться по сети.