Akka.net v0.7.1 Release Notes

Release Date: 2014-12-13 // over 9 years ago
  • Brand New F# API. The entire F# API has been updated to give it a more native F# feel while still holding true to the Erlang / Scala conventions used in actor systems. Read more about the F# API changes.

    Multi-Node TestKit (Alpha). Not available yet as a NuGet package, but the first pass at the Akka.Remote.TestKit is now available from source, which allow you to test your actor systems running on multiple machines or processes.

    ✅ A multi-node test looks like this

    public class InitialHeartbeatMultiNode1 : InitialHeartbeatSpec
    {
    }
    
    public class InitialHeartbeatMultiNode2 : InitialHeartbeatSpec
    {
    }
    
    public class InitialHeartbeatMultiNode3 : InitialHeartbeatSpec
    {
    }
    
    public abstract class InitialHeartbeatSpec : MultiNodeClusterSpec
    

    ✅ The MultiNodeTestRunner looks at this, works out that it needs to create 3 processes to run 3 nodes for the test. ✅ It executes NodeTestRunner in each process to do this passing parameters on the command line. Read more about the multi-node testkit here.

    💥 Breaking Change to the internal api: The Next property on IAtomicCounter<T> has been changed into the function Next() This was done as it had side effects, i.e. the value was increased when the getter was called. This makes it very hard to debug as the debugger kept calling the property and causing the value to be increased.

    Akka.Serilog SerilogLogMessageFormatter has been moved to the namespace Akka.Logger.Serilog (it used to be in Akka.Serilog.Event.Serilog). ⚡️ Update your using statements from using Akka.Serilog.Event.Serilog; to using Akka.Logger.Serilog;.

    💥 Breaking Change to the internal api: Changed signatures in the abstract class SupervisorStrategy. The following methods has new signatures: HandleFailure, ProcessFailure. If you've inherited from SupervisorStrategy, OneForOneStrategy or AllForOneStrategy and overridden the aforementioned methods you need to update their signatures.

    TestProbe can be implicitly casted to ActorRef. New feature. Tests requiring the ActorRef of a TestProbe can now be simplified:

    var probe = CreateTestProbe();
    var sut = ActorOf<GreeterActor>();
    sut.Tell("Akka", probe); // previously probe.Ref was required
    probe.ExpectMsg("Hi Akka!");
    

    🛠 Bugfix for ConsistentHashableEvenlope. When using ConsistentHashableEvenlope in conjunction with ConsistentHashRouters, ConsistentHashableEvenlope now correctly extracts its inner message instead of sending the entire ConsistentHashableEvenlope directly to the intended routee.

    Akka.Cluster group routers now work as expected. New update of Akka.Cluster - group routers now work as expected on cluster deployments. Still working on pool routers. Read more about Akka.Cluster routers here.