Few years ago, during an architecture round-table discussion, focusing on building distributed systems, many questions came up regarding distributing computing design patterns which naturally are difficult to implement and get right.
Those design patterns are focusing on addressing modern applications use cases where you need to increase performance and cut on the infrastructure cost.
Where you need to minimize database access, keep the state in memory versus keep reloading from the data store while maintaining the consistency of those entities you are working with. It’s what we know now as Reactive Microservices or stateful Microservices.
Few would suggest using distributed cache and other traditional methods, however, separating the cache from the logic is introducing more problems than solutions, plus all the complexity involved in implementing concurrency and the host of potential defects will be involved in building such complex systems.
At that time, I would usually bring up the “Akka” question, “do you know about Akka?”.
Whenever the question comes up, many would realize that, Akka sounds Scandinavian, and of course, this is usually followed by dad jokes such as “is it that Swedish food they sell at Ikea?”
Now it’s different, we have an overwhelming number of use cases where Akka can naturally help; that ranges from traditional order management -different load requirements-, fintech, social apps, messaging, IoT, managing autonomous vehicles, near real-time intelligent decision-making systems and fast data applications.
Akka, matured a lot since then, now it reached the “ADOPT” state in the latest Zalando Tech Radar — 2020.07 and it is battle tested in production and used by many large enterprises.
It’s a Swiss army knife toolkit for building distributed systems, covering the stateful microservices space that we mentioned earlier using Akka Cluster Sharding, high-performance computing using Akka Routers and distributed data capabilities, and fast data and data streaming using Alpakka, it even has Akka http and gRPC asynchronous interface. Akka is built on top of the Reactive architecture principles supporting self-healing and well-integrated with Kubernetes to provide elasticity and resilience, it is a performance powerhouse and very light on the infrastructure load and cost.
Akka is now more adopted and known than those days, however, it’s still not as known as it should be on the North American side.
We don’t know why for sure; it could be the stack name, it could be the myth that it supports Scala only or it could be that it is outside the comfort zone for some practitioners who prefer a legacy approach, we really don’t know!
But we know that, if you are involved in building software or digital solutions, you should know about Akka.
At Logic Keepers we offer hands-on modern application architecture workshops that covers Reactive Architecture and Akka in Java.
Please contact us for more info on how to utilize Akka clusters to build cloud-native, distributed, resilient, elastic, cost effective and flexible solutions.