Lightbend today announced the launch of Akka Serverless open beta, with general availability later this year. Akka Serverless is a Platform-as-a-Service (PaaS) offering that aims at cloud-native application development. It is built on Lightbend's Akka Platform technology and delivered via a model similar to existing serverless offerings.
The key challenge that Akka Serverless attempts to handle is to allow developers to build serverless business-critical stateful applications. Jonas Bonér, Lightbend's CEO and founder, explains:
Until now, the challenges of dealing with state at scale have meant that a serverless approach has not been able to address many more complex applications, such as IoT platforms, real-time financial services, modern eCommerce systems, streaming media, internet-based gaming, factory automation, telemedicine, and more. What is needed is a data-centric backend application architecture that can handle the volume of data required for today's applications at extremely high performance. Akka Serverless is the first to achieve these capabilities.
Akka Platform, a framework for building large-scale distributed applications, powers Akks Serverless. With more than 20 million downloads annually, Akka, the foundation for Akka Platform, is a popular open-source programming model for building large-scale distributed, cloud-native applications. Since Akka manages the storage of distributed state, it eliminates the need for databases for business-critical applications. This distributed state management allows businesses to not concern themselves with database administration, maintenance, or even APIs.
InfoQ spoke with Jonas Bonér about the announcement.
InfoQ: What platforms and programming languages will Akka Serverless support?
Jonas Bonér: The language support model for Akka Serverless is open source, which means that anyone interested can build their own language support libraries to run services on Akka Serverless. From a company perspective, we've focused first on developing a JavaScript and Java SDK (including support for Spring) for our product to satisfy many of the language requests we got. The open-source communities have stepped up and built a few additional language SDKs (like Python, Go, and .Net)
InfoQ: What are the main differences between Akka and Akka Serverless? Is it only around the pricing & deployment model, or are there other differences as well?
Bonér: While the underlying technology is the same (Akka), the ideas and target market for both are entirely different. With our existing products, we target experienced developers who require complete control over every aspect of their implementation (like databases for persistence and even the actors that serve data to their microservices). As you're using Akka itself, you'll have to use a JVM-based language, and companies need to invest in the skills and mindset of developing with Akka. With Akka Serverless, we recognize there isn't a "one size fits all" for developer tools and frameworks. With Akka Serverless, you "trade" control over the environment for abstraction. Because developers don't have to worry/care about the database, the infrastructure, and the integrations, developers can focus all their time on the business logic. It also means that developers can choose completely different languages (like JavaScript), which means the skills and technologies that developers already know and use can be applied to Akka Serverless.
InfoQ: Typically, developers store application state externally in a database or a distributed cache like Redis when building serverless applications. Where does Akka Serverless store its state, and how does it simplify the development experience?
Bonér: When it comes to building applications, especially serverless ones, most of them will need to reach a database to get data into their function, probably on the first or second line of code. That means developers need to know a lot about the database, like connecting to the database, querying it, and designing schemas for it. With Akka Serverless, we flip that model upside down. With Akka Serverless, the data you need for your service finds the service when required, and once the service is done, it automatically saves everything as well. That means the developer doesn't have anything to do with databases or caches.
InfoQ: Will Akka Serverless be open-source?
Bonér: Akka Serverless drives a lot of value from the existing open-source Akka technology stack, and we've added functionality to that stack to support Akka Serverless itself. Akka Serverless also leverages the Cloudstate open-source project, but, as with most managed services, specific management and security elements we need for our platform's safe and secure operation remain proprietary to Lightbend.
InfoQ: On which cloud platforms can Akka Serverless be deployed?
Bonér: Akka Serverless is a hosted Lightbend managed service, and it will debut on Google Cloud Platform first with other Cloud Service Providers to follow customer demand.
Lightbend provides scalable, high-performance microservices frameworks and streaming engines for building data-centric systems optimized to run on cloud-native infrastructure. Developers can sign up with Lightbend to become an Akka Serverless beta participant.