QA - Akka 3 frequently asked questions
Current library users
As an existing Akka libraries customer, is there anything I need to do now?
You do not! While we have introduced new ways to build and run Akka apps, those are additive and have no impact on your existing applications.
The Akka libraries customers have used over the last 15 years are included in this new Akka, will always be a part of Akka, and will indefinitely continue to have new feature investments. The Akka libraries are foundational to our company, our business, and our products.
What is the support timeline for Akka?
Do I need to upgrade my libraries to use the new Akka?
You do not.
You can upgrade your libraries to the latest version at your leisure.
You can use the Akka SDK and the new operating environments for developing and hosting new services. The services you build with the Akka SDK are interoperable (through event sharing and streaming) with services you build with the Akka libraries.
When should new projects consider using Akka libraries, the Akka SDK, or both?
We recommend starting development with the Akka SDK because it is so easy to use and will address most requirements. The Akka libraries are interoperable with the Akka SDK and should be used for custom persistence, Alpakka-based integrations, custom protocols, embedded actors, and actors on IOT devices with Rust.
The Akka libraries are neither opinionated nor descriptive in guiding developers in how to design the behavior of a distributed system. They provide maximal control and configurability for you to tailor the behavior of a distributed system.
The Akka SDK provides an opinionated approach to building services. The SDK imposes guardrails that make it simple to build responsive applications. Developers can build new services that scale to 1M IOPS with under a day’s education.
Further, apps and services built with the Akka SDK can be deployed in Akka’s new operating environments: Serverless, BYOC, or Self-Hosted. These operating environments automate day 2 operations of your services including elastic scaling to over 1M IOPS, recovery, app migration, multi-cloud replication, and repatriation.
Can I operate existing Akka library apps in the new Serverless and BYOC (Bring Your Own Cloud) environments?
You cannot.
The applications and services you build with the Akka libraries are operated with a self-hosted do-it-yourself model. We are looking at ways to enable certain types of Akka libraries apps to run within the new operating models, but since Akka actors offer incredible flexibility in how they are designed, it’s challenging to create a one-size-fits-all operating model for services built with Akka libraries.
Can I convert my applications written with Akka libraries to use the SDK?
Existing applications authored with the Akka libraries can interoperate with applications built with the Akka SDK through messaging, brokers, and integration.
If you’d like to convert an existing Akka application based upon the libraries into the Akka SDK, services need to be restructured into an Akka SDK format. There is no automated way to convert your existing services to use the Akka SDK, but there are numerous parallels that you can learn to get started faster. The Akka SDK has a <<templating utility>> that generates a new project with the appropriate structure.
Depending upon the libraries that you use, there are similar Akka SDK components:
If your app is using __ libraries module | Then learn __ SDK component |
Remoting - HTTP or gRPC | Endpoints with timer / broker triggers |
Streams | Streaming producers; Streaming consumers |
Alpakka | Integration - brokers and messaging |
Actors, Entities - Cluster Sharding, Persistence | Entity - KeyValue, Event Sourced |
What is the latest release of the Akka libraries?
Akka – what's new
What are the differences between the Serverless, BYOC, and Self-Hosted operating environments?
In Serverless, we run everything for you in our cloud at Akka.io. With BYOC, you run responsive work fully managed by us within your VPC. With Self-Managed, you run responsive workloads managed by you in any datacenter or cloud of your choice.
All three operating environments give you different ways to set up and operate regions where your applications can be deployed, host requests, elastically scale, and host replicas.
Your applications can replicate across any number of regions and it does not matter whether the regions are Serverless, BYOC, or Self-Hosted. Applications can use replication and migration controls to run within multiple regions or perform a cutover from one region to another.
You can add or remove regions by standing up a BYOC or Self-Hosted environment. Provisioning a BYOC environment is automated by Akka into your VPC environment. Self-Hosted environments require your administrators to configure, manage, and operate gateways, Kuberenetes, database, and storage components of Akka.
Akka runs its control plane, which is used to federate different regions into a single substrate for your apps, at Akka.io. The Self-Hosted operating environment is the data plane. Akka.io will only observe your application traffic if you deploy your applications in the Serverless environment.
Most customers should start with Serverless as it’s scale-as-you-go and easy to get started. With Akka’s migration and cutover capabilities, most organizations can provision a BYOC when they require dedicated and controlled resources.
When should I choose Serverless, BYOC, or Self-Hosted options?
You should choose the plan based upon your control requirements and cost.
Choose for | Comments | |
Serverless - Priority |
|
Pooled resources so potential risk of noisy neighbor issues. Takes longer for Akka to provision new capacity if unplanned spikes. |
Serverless - Critical |
|
Provisioned resources with shorter windows for scaling during spikes and bursting. |
BYOC |
|
It becomes more cost effective to deploy BYOC rather than Serverless if your IOPS goes above 500 or you will be storing >1 TB of data. Additionally, BYOC provides dedicated IOPS to easily exceed 1M with no cold starts. |
Self-hosted DFY |
|
Ideal for edge environments or internally-managed kubernetes systems. |
Can I deploy Akka applications built with the libraries into your new hosting environments, like Serverless and BYOC?
You cannot.
The Akka libraries are non-opinionated and each service built with the Akka libraries behaves differently making it difficult for us to define operating standards that would allow us to guarantee an SLA for every type of Akka libraries-based application.
Existing applications authored with the Akka libraries can interoperate with applications built with the Akka SDK through messaging, brokers, and integration.
What is the difference between DIY Operations for the Akka libraries and Self-Hosted with the Akka SDK?
The Akka libraries are non-opinionated and give you full operational flexibility.
The Akka SDK is opinionated and enables developers to create systems with a specific operating footprint. This allows Akka to automate many of the operations tied to elasticity, agility and resilience. The Self-Hosted operating model is automation implemented as a set of Kubernetes operators that manage the various storage, I/O, security, and compute resources for your Akka applications. This configuration also enables your environment to be a named Akka region and federated with regions managed by Akka in Serverless or BYOC environments.
What are the different clouds and regions where I can run Akka 3?
In the Serverless operating environment, at launch, we provide NA East / West and two EU regions that are running across AWS and GCP. You can request additional regions available in Azure, AWS, or GCP from within the Akka console. We will shortly have an Australia Azure region.
You can deploy our BYOC solution into a VPC that runs in any region at AWS, GCP, or Azure.
You can deploy our Self-Hosted solution into any data center or cloud environment that supports Kubernetes or K3s.
How are the Akka 3 SDK and operating environments designed?
The Akka SDK is an approach to building, testing, and debugging Akka applications that are composed of high-level components.
At launch, we are providing components for developing HTTP endpoints (gRPC just around the corner), entities (apps that act as their own database), timers, workflows (for durable execution), and views (streaming materialized views, read-only representations across many entities). There are also multiple ways to integrate data with streaming producers, streaming consumers, and messaging brokers.
Developers use the SDK to write services with a code structure that is easy to learn and enforces a separation between domain objects, APIs, and Akka components. Developers can build and run their applications offline in a local sandbox. A local console and event debugger are included. Developers do not need to install an Akka environment, Kubernetes, or a database to build and run applications locally.
The Akka SDK generates a set of microservices that are packaged into Docker images ready for deployment. The generated microservices are built using the Akka libraries as part of the build process.
The generated services can be run and executed locally or, when ready to operate elastically or across regions, deployed into one of Akka’s new operating environments: Serverless, BYOC, or Self-Hosted. The Docker images that were packaged by the Akka SDK are pushed into an image registry and the Akka operating environment will deploy the services.
Operators are then able to define controls around how the application will elastically scale, which regions the application will replicate itself across, and whether services will be read-replicated or write-replicated.
New versions of services are deployed by packing new Docker images and pushed into an operating environment. New versions of services are updated automatically with no end-user downtime.
What’s new and cool in Akka 3?
There are a few areas of significant innovation that will accelerate the velocity of development and automate Day 2 operations designed to improve the end-user experience and dramatically lower the cost of designing and operating an application.
Akka SDK. Developers – whether Java programmers or not – should need under a day to learn what is needed to be productive building and deploying applications with Akka. The SDK provides a way to build applications offline without developers having to set up cloud infrastructure locally. Also, Akka’s new separation of concerns separates your business domain logic apart from Akka coding. Your business logic can be written and tested without any Akka decorators or API calls required. A local console that simulates cloud operation and provides event debugging is available. Developers do not need to learn asynchronous programming, messaging, domain-driven design, or event sourcing to be productive. Akka provides structured templates which limit what portions of Java are needed to learn. And our operating environments are quick and easy to access, so that developers can see their system in action instantly.
Multi-Region Hosting & Replication. Akka applications are natively multi-region. Akka.io Serverless runs multiple regions across AWS, GCP, and Azure. Applications can be deployed across one or multiple regions simultaneously. If your application is stateful, Akka automatically shards the data across compute within a single region and replicates your data across regions. End users can read or write to data in any region without understanding location semantics. Akka handles routing user traffic to the correct instances and re-balancing data as compute is increased or decreased. The multi-region transparency also works across Serverless, BYOC, or self-hosted and when combined with automatic replication, your applications can start in one location and migrate to another such as with repatriation.
Workflows. The Akka SDK provides a workflow component to implement long-running, multi-step business processes. Workflows provide durability, consistency and the ability to call other components and services. Business transactions can be modeled in one central place, and the Workflow will keep them running smoothly, or roll back if something goes wrong.
Integrations. Streaming producers, streaming consumers, and broker-based integrations can process data in real-time with built-in backpressure and integrate services with 3rd party systems or those built with Alpakka integration tier.
Multi-Master Replication. The Akka libraries now enable a single entity to be write replicated across many different locations. This enables clients to modify the same data in two different locations at the same time. Conflicts are resolved through CRDT-resolution transparently and with a merge function provided by developers. This capability is currently within the Akka libraries and will appear shortly within the Akka SDK.
Akka Resilience Guarantee. Akka (the company) will indemnify your app against data loss and lack of recoverability. Customers who are deploying the latest versions of Akka and have signed a subscription addendum are eligible to receive this policy. <<Link to policy>>
How do Cloudflare, Akamai, AWS Lambda, Azure Functions compare to the Akka SDK?
The Akka SDK can be used to implement services from other platforms with a broader set of reliability, messaging, and durability guarantees.
Serverless and edge clouds are not application hosting platforms. They simplify building Functions as a Services (FaaS) systems with limited productization of the API or their ability to work with data. Most FaaS require your services to call into a separate, non-scalable database or proprietary cloud-hosted data service that operates outside the FaaS environment.
Akka applications operate as their own durable, replicated, in-memory database. Your application’s logic and data are packaged together. Akka transparently handles sharding your application’s instances to scale elastically within a single region no matter how much data the application represents, and then replicates that data across different regions.
As a starting point, you can convert Cloudflare Workers, Azure Functions, and AWS Lambdas to Akka SDK Endpoints with timer or broker triggers.
Licensing, pricing, & payments
How is Akka 3 licensed?
The Akka libraries, Akka SDK, and the Self-Hosted operating environment are all licensed under the Business Source License 1.1, which is an open source software license. The BSL grants rights to use the software for free in development or pre-production but requires a commercial license from Akka to use in production.
Your existing subscriptions all apply to the Akka libraries, Akka SDK, and Self-Hosted operating environments. You can interchangeably apply your existing core-based licenses for use across your existing libraries deployments or new deployments that use the Akka SDK and Self-Hosted operating environments.
Deployment of applications into a BYOC or our Serverless environment requires a managed services agreement as they are hosted services rather than software licensing.
You can purchase Serverless services by adding a credit card to your account or through credits purchased through a contract. BYOC services can only be purchased (today) through contract. In the near future, we will allow you to execute fulfillment through cloud marketplaces.
You can contact your account executive to add credits or purchases for BYOC to your contract.
How is Akka 3 priced?
Akka pricing is based on the operating environment chosen: Serverless, BYOC, Self-Hosted, or DIY.
The Akka libraries pricing for DIY operations remains the same. Pricing is based upon a per core-hour and cores are purchased in annual allotments. We offer free subscriptions for startups and OSS projects. OEM redistribution packages are tailored to the business model of the ISV. There are numerous volume discount packages available for organizations that purchase more than 10 cores at a time.
The Akka SDK and the new Self-Hosted operating environment are priced identically to the Akka libraries. Your core usage is measured by the total number of physical cores that are powering the Kubernetes environment that is orchestrating your Akka applications.
Serverless pricing starts at $.25 / hour of hosting with volume discounts available. For applications that are deployed across regions, each region is calculated independently for units of consumption. Each project is measured separately for units of consumption.
We also offer a $1.25 / hour of hosting tier that provides the same units of consumption but with a higher degree of consistency as physical resources will be provisioned rather than pooled.
BYOC environments are environments that operate within your VPC but managed by Akka’s team. They are also metered by hourly consumption with a minimum $2K / month purchase to compensate for the Akka team’s efforts in configuring and managing your environment.
What is the difference between per-hour and per-core-hour?
Akka’s Serverless environments are priced per-Akka Hour. An Akka Hour provides a single hour of hosting which includes a unit of compute: 100 IOPS, 100 GB storage, 1 GB egress. Your application is elastic, and if crosses over those thresholds within 60 minutes then a second unit will be automatically billed. An Akka Hour applies per service and per region, so adding additional deployment units or regions increases the total Akka Hours billed.
Akka’s BYOC, Self-Hosted, and Akka libraries are licensed as per-core-hour. Akka measures the total number of compute units that your operating environment depends upon, and measures their consumption across an hour. For example, if your BYOC environment depends upon 40 vCPUs to operate Kubernetes, then that translates to 20 cores, and their utilization is measured by which cores are allocated to Kubernetes for each hour of operation.
If I have an existing Akka libraries subscription, can I use my allocation of cores towards the Akka SDK?
Yes.
Your existing subscription’s cores can be allocated for Akka libraries (DIY), Akka SDK, and the new Self-Hosted variant that operates applications built with the SDK. To install the Self-Hosted operating environment, contact our sales and services team.
BYOC and Serverless environments are not included in your existing subscription. You need to add a managed services subscription to gain access to these environments. You can also purchase Serverless credits with a credit card at Akka.io.
As an existing customer, can I get a discount for your BYOC or Serverless environments?
Yes!
Your team members can create a free personal account at Akka.io with our Serverless operating environment. New accounts are granted 500 hours of free hosting which can be used for development, pre-production, or production services. We provide volume purchase discounts that are coordinated with your Account Executive and Customer Support Manager.
Additionally, we are offering enterprises a professional services partnership. Jump head first into Akka 3 with our team. We will build, test, and launch a new application side by side with your team with a month of development services. For $25,000 one of our Akka experts will work alongside your team and partners to build or prototype a new system with the Akka SDK that you can operate on any of our environments. If you push the system into production, your $25,000 will be applied as first year hosting credits for production usage.
Are there any changes to how I make payments?
There are not.
You can use your existing contracting and PO process to purchase licenses or managed services subscriptions that will provide credits for usage with Serverless and BYOC environments.
We have introduced an additional credit card billing option available at Akka.io for Serverless hosting. We will be making hyperscaler marketplace fulfillment (contracting, invoicing, billing and collections) available in 2025.
How do I avoid lock-in with Akka?
Resilience Guarantee & SLA
What is the Akka resilience guarantee and how do I get it?
We believe in the resilience and reliability of Akka, to the point where we guarantee it. We will indemnify against losses caused by an Akka Application becoming unreliable.
If Akka causes a loss of reliability in your application, we will reimburse you for the period of unreliability. Reliability is the ability of an application to function without loss of data. If the application ceases to function or loses information it is intended to retain, it is “unreliable”.
The resilience guarantee policy is posted in our Trust Center, trust.akka.io. It’s included in managed services agreements for our Serverless or BYOC operating environments. Existing Akka subscriptions will need to be upgraded to obtain this indemnity language. Contact your account executive to get this handled.
What is Akka’s SLA and how is it different from the resilience guarantee?
The Akka resilience guarantee is available to all customers of Akka, whether you are licensing our software or purchasing a managed service, such as Serverless or BYOC.
The Akka SLA defines the availability and performance guarantees that extend across our managed services.
License keys & accounts
Are license keys required for the Akka SDK?
If you are using the Akka libraries, you can get your license key by logging into your product support account, which has already been migrated to Akka.io.
The Akka SDK includes the Akka libraries in the applications that it generates. The Akka SDK automatically injects the appropriate license key into the Akka apps that you develop. You do not need to acquire an Akka license key to build, deploy or operate Akka apps built with the SDK.
Does my organization have an account at Akka.io?
As an existing customer, you will have two separate accounts:
- An Akka account that can be used for product support, Akkademy, and download tokens. Your existing Lightbend account has been transitioned to Akka.io.
- An Akka.io account for your organization’s usage of services in our Serverless, BYOC, and Self-Hosted environments (services built with the new Akka SDK).
We currently have not implemented SSO across these two types of accounts, so your organization will have different logins and credentials for each of these two.
Your support account has been automatically provisioned. Each of your employees will get their own individual Akka.io account. You will need to have an admin create a new Akka.io account that will be designated as your organization account. Once defined, your employees and partners can be invited to join your organization environment. People who are part of the same organizational account at Akka.io Serverless or BYOC will then share in the projects and resources available to operate services.
Training & certifications
What is the best way to get trained and certified on the new Akka SDK?
Just build an application and deploy it!
We are posting a challenge exercise that takes most developers about 4 hours to build if you are unfamiliar with the Akka SDK.
The Akka docs have numerous examples and have been under design for many years. They offer all the insights and tutorials needed to build new services.
Are there Akkademy courses for the Akka SDK?
Support, contact us, & misc.
How do I get support for solutions running in your Serverless or BYOC operating environments?
Customers who have contracts that purchase credits can get support through the Akka product support portal. Note - currently your Akka.io Serverless account is separate from your Akka product support account. You will need to create separate accounts for each.
Customers who are purchasing Serverless through credit card billing are provided an email-based support channel through support@akka.io.
Why did Lightbend change your business name to Akka?
How do I email or contact employees of Lightbend under their Akka.io email address?
Related Reading