Chapter 6. Using remote actors
This chapter covers
- Structuring reactive applications with sbt
- Configuring Akka with application.conf
- Remoting with Akka
- Obtaining reliability guarantees in distributed systems
Historically, a distributed system is defined as a software system in which components that reside on networked computers work together on a common goal. This definition, albeit somewhat generalized, captures the gist, but it has led to some unfortunate side effects, such as the belief that the programming model used for a remote object can be generalized to match that of a local one. In a distributed system, remote objects require different latency metrics, memory access models, concurrency constructs, and failure handling. The local model can’t be generalized into a distributed model.
Tip
For more on this subject, see the classic paper “A Note on Distributed Computing” (Sun Microsystems, 1994) at http://dl.acm.org/citation.cfm?id=974938, which explains why the generalization approach is bound to fail.