Akka Remoting allows you to look up and communicate with actor instances that reside in actor systems which are not in the local JVM. The caller does not need to know where that actor instance itself is. They just need a reference to that actor as well as knowledge of what message(s) to send to it.
To the caller, the actor instance behind the ActorRef
they are using exhibits what is referred to as location transparency. This is a technique where local calls are made to look like remote calls and is a core concept within Akka. Regardless of whether the actor you are communicating with is local or remote, the API and underlying framework are designed around the failure and error possibilities of dealing with something that is possibly remote.
By embracing location transparency, Akka forces you to think about some concepts that you might not have to consider on a purely local system. This includes things such as asynchronicity, serialization, and non-guaranteed message delivery...