Leverage the strengths of Akka and Kubernetes
Learn how Akka (and Akka cluster, in particular) is the perfect framework for creating a cloud-native application
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):
Set up a basic Akka cluster.
Set up a basic Akka cluster with a focus on cluster aware actors.
Set up a basic Akka cluster with a focus on cluster singletons.
Set up a basic Akka cluster with an example implementation of cluster sharding.
Set up a basic Akka cluster with an example implementation of Akka persistence.
Set up a basic Akka cluster with an example implementation of Akka persistence and Akka persistence query.