Orleankka Versions Save

Functional API for Microsoft Orleans http://orleanscontrib.github.io/Orleankka

8.0.0

2 months ago

Updated to .net 8 and Orleans v.8

7.0.0

11 months ago

Changes

  • Updated everything to run on Orleans 7.x
  • Migrated to native .NET hosting API
  • Added support for native serialization for ActorPath, StreamPath, ActorRef, StreamRef, ClientRef
  • All samples were migrated to use IInvokable instead of InvokeMethodRequest in MayInterleave static callbacks
  • DeactivationReason was added to Deactivate message
  • Separated lifecycle messages sent on grain and state activation/deactivation via Activate.State and Activate.External static messages

Breaking changes:

  • Removed support for IGrainActivator in favor of native grain activation services
  • Removed support for stream filtering since it's not supported by Orleans streaming api
  • Removed implicit stream subscriptions via StreamSubscriptionAttribute in favor of native ImplicitStreamSubscription and RegexStreamSubscritpion attributes
  • Roundtrip serialization checking in TestKit now accepts IServiceProvider and uses serializer registered in container instead of direct use of not available in 7.x Serializer class
  • CreateObservable() on IActorSystem is now synchronous and returns reference to IClientEndpoint instead of Task<IClientEndpoint>

Bug fixes

  • Fixed concurrency bug with key no found exception fired on timer removal when the one-off timer was fired before await

3.5

2 years ago

Changes

  • Introduction of StreamRef middleware [see #173]. Kudos to @Jubast for PR!

3.4

3 years ago

Changes

  • Introduction of additional Orleannka.Client package which contains client-related API (ClientActorSystem) [see #169]

3.3.2020

3 years ago

Details will follow

3.0.0

4 years ago

Changes

  • Updated to work with Orleans 3.x

2.7.0

4 years ago

New features

  • Actor grain lifecycle message were made serializable and moved to Orleankka core, so now it's possible to activate/deactivate any actor externally. Extensions methods were created for ActorRef and you can simply do system.ActorOf<IMyActor>("foo").Activate(). Note: activation is idempotent.
  • Behaviors: Become message was extended with Become<TArg> so now you can pass additional arguments to behavior:
behavior.Become(Failed, ex);

Task<object> Failed(object message)
{
    switch (message)
    {
        case Become<Exception> x: 
            log.Error(x.Argument);
            break;
    }
}

2.6.0

4 years ago

Breaking changes:

  • Dispatcher options are now configurable via extension method on IServiceCollection - Configure<DispatcherOptions>(o => o.HandlerNamingConventions = new[]{"On", "Apply"})
  • Middlewares now need to be registered in a container IServiceCollection.AddSingleton<IActorRefMiddleware>(sp => new TestMiddleware(sp))

2.5.0

4 years ago

Breaking changes:

  • All actor interfaces are now required to inherit IGrainWithStringKey together with IActorGrain (#148)
  • StorageProviderFacet and [UseStorageProvider] attribute were removed in favor of native PersistentStateFactory (get it from container) and PersistentState attribute respectively (doc)
  • Less strict signature for actor ref middleware (object instead of TResult)
  • Naming symmetry between ActorRefMiddleware and ActorMiddleware (ie Receive instead of Send-Receive pair)
  • Unified design of Next handling between ActorRefMiddleware and ActorMiddleware. Now subclasses need to call base.Receive to call next handler in a chain
  • Per-type middlewares were removed as a feature to avoid confusion. Use global pipeline and type filtering inside the middleware
  • Direct client middleware configuration was removed. Now single actor ref middleware is used for all clients

New api:

  • Exposed function to get actor grain interface from actor class
  • Additional method overload for extracting messages from InvokeMethodRequest to simplify matching in F#

2.4.4

4 years ago

New features:

  • Updated to work with Orelans 2.4.4
  • Additional Orleankka.Legacy.Runtime package that contains legacy (1.x) apis and full support for declarative stream subscriptions

Breaking changes:

  • Minor api change to the approach for extracting messages from InvokeMethodRequest used in MayInterleave predicates (commit)
  • Minor api change to middleware signatures (commit)