A Game of Ping Pong with Akka
Being an Erlang developer for few years, Akka gives me very homey feelings. It takes direct inspiration from the Erlang/OTP and Riak Core, and grows into a great library for building concurrent, distrbuted and fault tolerant applications. On top of its core, modules such as Akka streams is developed to serve as a better abstraction for a class of problems over raw actors; Akka HTTP is written to help build Rest APIs, Akka Persistence is added to facilitate writing CQRS systems, among other things.
Few days ago I gave a talk at the Scala Meetup in Gothenburg introducing Akka along with my colleague Ola and Tobias. My talk was structured as a code demo that shows how to start from a simple akka actor based rest api which takes a ping message and respond with a pong message, and gradually build up with fault tolerance, clustering, CQRS, etc.
The source code of the demo session can be found here. It is devided up into the following 5 steps (branches) to facilitate diffing :)
- 00-rest-boilerplates
- 01-basic-ping-pong
- 02-supervised-ping-pong
- 03-clustered-ping-pong
- 04-persistent-ping-pong
- 05-persistent-view-ping-pong
Happy Akka-ing!