IBM Cloud Satellite: Run and manage services anywhere Learn more

Leverage the strengths of Akka and Kubernetes


Digital transformation of the enterprise is challenging developers to create applications capable of dealing with massive scale (connected devices, sessions, transactions), massive amounts of data, or both. Cloud infrastructures provide the ideal deployment environment for such apps. However, getting the most out of this compute platform entails writing highly concurrent, distributed software. This is just plain difficult to do correctly. It requires proper handling of threads, synchronization, preventing race conditions, dealing with persistence and state, scaling the application, and responding to failures.

Fortunately, developers have some choices when it comes to selecting toolkits and frameworks to assist with cloud-native development. One such toolkit, Akka, was created specifically for building highly concurrent, distributed, and resilient applications. This series will focus on Akka clustering and persistence features — capabilities that make it perfect for building containerized applications deployed under Kubernetes orchestration.

This series begins with a simple Akka cluster project and progressively builds up to examples of event sourcing and command query responsibility segregation. Each project described can be cloned, built, and run independently of the other projects. The seventh and final tutorial describes how to deploy the resulting application to IBM Cloud. It provides a simple tool to visualize the interaction of the Kubernetes pods, Akka Clusters, and Akka actors, illustrating how the application architecture built with Akka works in concert with Kubernetes container orchestration to create a truly reactive system with multiple levels of resilience and scale.


The following items make up this series (Unit 7 to come):