Preface

 

I first had the idea for this book in April 2014, after I’d spent the better part of four months assisting a client rebuild their entire application infrastructure using Scala, the Play Framework, and Akka, three technologies I’d already been using extensively for a few years.

The existing application faced two challenges that called for a rebuild: On one hand, the application data was spread across two separate database systems, a few caches, and a few external cloud services such as Amazon EC2, YouTube, SoundCloud, and Mixcloud, making it nearly impossible to keep the data up to date and in sync. On the other hand, the number of users had been increasing, and the flood of requests whenever a new campaign was launched had started to overwhelm the system. It was almost unavailable under load. The new version of the application had to accommodate sudden bursts in traffic in its initial design. And to make things more interesting, the relaunch of the site not only involved migrating, reconsolidating, and updating the data of millions of users and tens of millions of items, but it had to happen over a single weekend.