Functional API for Microsoft Orleans http://orleanscontrib.github.io/Orleankka
Updated to .net 8 and Orleans v.8
ActorPath
, StreamPath
, ActorRef
, StreamRef
, ClientRef
IInvokable
instead of InvokeMethodRequest
in MayInterleave
static callbacksDeactivationReason
was added to Deactivate
messageActivate.State
and Activate.External
static messagesIGrainActivator
in favor of native grain activation servicesStreamSubscriptionAttribute
in favor of native ImplicitStreamSubscription
and RegexStreamSubscritpion
attributesIServiceProvider
and uses serializer registered in container instead of direct use of not available in 7.x Serializer
classCreateObservable()
on IActorSystem
is now synchronous and returns reference to IClientEndpoint
instead of Task<IClientEndpoint>
key no found
exception fired on timer removal when the one-off timer was fired before awaitDetails will follow
ActorRef
and you can simply do system.ActorOf<IMyActor>("foo").Activate()
. Note: activation is idempotent.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;
}
}
Dispatcher
options are now configurable via extension method on IServiceCollection
- Configure<DispatcherOptions>(o => o.HandlerNamingConventions = new[]{"On", "Apply"})
IServiceCollection.AddSingleton<IActorRefMiddleware>(sp => new TestMiddleware(sp))
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)TResult
)ActorRefMiddleware
and ActorMiddleware
(ie Receive
instead of Send
-Receive
pair)Next
handling between ActorRefMiddleware
and ActorMiddleware
. Now subclasses need to call base.Receive
to call next handler in a chain