After over a year of hard work, we’re thrilled to announce that Akka.NET will soon be leaving beta! The community of global contributors has grown rapidly and is picking up even more momentum.

Akka.NET (repo) is a community-driven port of JVM Akka to .NET. Akka.NET is a programming framework, based on the Actor Model, for building powerful concurrent & distributed applications more easily. The framework itself handles all thread management, low-level networking, and the utility code and “plumbing” for you. You just focus on the logic and workflow of your application.

After releasing v0.8 last week, the core contributors met to lay out the roadmap to v1.0 and decide which features will be finalized for the release, and which will remain in beta.

The general focus for the release is a lot of polishing and testing, along with some feature improvements.

When Will 1.0 Come Out?

With some room for error built in, we expect to have 1.0 live in the next 1-2 months.

What’s in 1.0?

Scheduler API Rework

Håkan is leading the charge on redoing the Scheduler API. To revisit, this is the ability to schedule future and/or recurring tasks within your actor system.

Supervisor Strategy Serialization

Roger is already well-underway on reworking how Supervisor strategies are serialized. This will help us ensure that remote hierarchies work as intended when using Akka.Remote and Akka.Cluster.

Specs & Added Stability

The test suite is already thorough, but Bartosz is leading the charge on adding more tests, general polishing, and digging through APIs just to make sure.

Documentation Rework and Cleanup

Andrew is working with a number of community members to rework the documentation, especially the onboarding process for new users to Akka.NET.

Two key goals of the rework are:

Make it obvious that F# is a first-class citizen. Even though Akka.NET has fully supported F# from early in the project, some of the docs/examples are only in C# or don’t speak to F# developers enough. Provide clear guidelines and HOWTO for developers to add relevant documentation when they add features, so the docs don’t lag behind.

New Build Servers

Among his ongoing work on Akka.Cluster and Akka.Remote, Aaron will be setting up new TeamCity build servers. Petabridge is sponsoring these and they will be hosted on Azure. This will help us all know that releases are stable and also speed up integration testing in the development cycle.

Why are we getting new build servers?

To add Mono build support, so we can run the full test suite on Mono.

To build out multinode testing for Akka.Cluster and Akka.Remote

In general, the AppVeyor servers are a little underpowered for the amount of concurrent work we’re doing, so we see a lot of timeouts and a generally slow process that we don’t see on local machines. This inconsistency has made it very difficult for us to do good regression testing on PRs since we couldn’t really trust the build server.

What’s Not Leaving Beta?

v1 will also include the following modules, but they will remain in beta:

Akka.Persistence: Bartosz let us know that Akka.Persistence is fully ported. BUT, Akka.Persistence is still in early beta everywhere (including JVM Akka). So things may change, and it stays in beta.

Akka.Cluster: this module is very well developed and is in “final polish” model as well as adding multi-node testing, which is a difficult project that Aaron continues to work on.

Timely Content

People are talking about Akka.NET, which is humbling, flattering, and thrilling. Here are some of the recent and upcoming talks or presentations about the framework.

All in all, this is a very exciting time for the community. The whole team is making wonderful contributions, and the community is about to get an even better framework and documentation to boot.

Please let us know which questions you have about releases, functionality, etc in the comments!

If you liked this post, you can share it with your followers or follow us on Twitter