We all want the benefits of serverless: flexible scaling to meet demand being handled by a hosted platform, not planned for months ahead, and making fault tolerance and availability the platform’s responsibility–and not the developer’s or operator’s–are incredible organizational efficiencies.
This means that to make serverless applications worth it at all for complex enterprise applications, we need to continuously process data in close to real-time, mining knowledge from never-ending streams of data.
This data also often needs to be processed in a distributed way—for scalability and throughput—before it is ready to be stored by the persistence layer. Enter stateful entities: by combining domain state and logic into a single “entity”, ensuring co-location of data and processing, we get a powerful, yet simple, abstraction for designing data-centric services and systems. Stateful entities providing the following benefits to development teams:
In Part 3 of our series Developing Serverless Applications, we dive into the role of stateful entities, why this matters, and serverless use cases for application developers.
Working with stateful entities enables developers to look at the challenge of distributed state in a different way, with a different design. It puts data at the center, not on the sidelines, as in the image below:
Above: Akka Serverless utilizes in-memory state while persisting data and events to data sources that you don’t need to manage or think about.
With developers left empty-handed with stateless functions only, this is where Akka Serverless comes into play. Our vision for Akka Serverless is to have a stateful serverless Platform-as-a-Service where the data your service needs is injected as needed in real-time.
This is especially applicable to extremely-low-latency services like those for digital twins for IoT, Financial Services, Telemedicine, Streaming Media and Gaming, and other use cases.
Akka Serverless combines the scalability and cost benefits of serverless infrastructure with the data management and responsiveness of stateful services. This adds up to one managed, cloud-based environment–not multiple cloud services that need to be configured and managed separately. Here is a 90-second video to give you an idea of what Akka Serverless is all about.
Akka Serverless democratizes the ability for developers to utilize advanced data access patterns with an easy on-ramp to serverless that eliminates a lot of the distractions and manual work related to infrastructure and databases.
In the next part, we look at how it all works in Akka Serverless. We’ll introduce the various data access patterns used for stateful entities and stateless functions, including the ability to mix and match between Event Sourcing, CQRS, and CRUD for key-value storage, all out of the box.