Chapter 12. Scalable and distributed applications using Akka
This chapter covers
- The philosophy behind Akka
- Simpler concurrency with actors, STM, agents, and dataflow
- Building a large scalable application with Akka called Akkaoogle
This chapter introduces an exciting Scala toolkit called Akka, which allows you to build next-generation, event-based, fault-tolerant, scalable, and distributed applications for the JVM. Akka provides multiple concurrency abstractions (mentioned in section 9.2.3), and this chapter explores each one of them. So far, you’ve only seen how actors can be used to build message-oriented concurrency. Here we’ll go beyond actors and look into concurrency abstractions like STM, Agent, and Dataflow.
To understand how the pieces of Akka fit together, you’re going to build a realtime product search application using Akka called Akkaoogle. This application is similar to Froogle (www.google.com/products), Google’s service that finds the lowest price on products you search for. You’ll build this product incrementally so you can see which Akka features you can use in which situations.
Note
All of the Akka features covered in this chapter are also available as a Java API. I can’t cover the Java side of things in this chapter, but you can check out the latest documentation at http://akka.io/docs/ for details.