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.

6.1. Refactoring to a distributed system

6.2. Configuring the applications

6.3. Remoting with Akka

6.4. Running the distributed example

6.5. Reliability in distributed systems

Summary