Releases: OrleansContrib/Orleankka
Releases · OrleansContrib/Orleankka
8.0.0
7.0.0
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
IInvokableinstead ofInvokeMethodRequestinMayInterleavestatic callbacks DeactivationReasonwas added toDeactivatemessage- Separated lifecycle messages sent on grain and state activation/deactivation via
Activate.StateandActivate.Externalstatic messages
Breaking changes:
- Removed support for
IGrainActivatorin 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
StreamSubscriptionAttributein favor of nativeImplicitStreamSubscriptionandRegexStreamSubscritpionattributes - Roundtrip serialization checking in TestKit now accepts
IServiceProviderand uses serializer registered in container instead of direct use of not available in 7.xSerializerclass CreateObservable()onIActorSystemis now synchronous and returns reference toIClientEndpointinstead ofTask<IClientEndpoint>
Bug fixes
- Fixed concurrency bug with
key no foundexception fired on timer removal when the one-off timer was fired before await
3.5
3.4
3.3.2020
3.0.0
2.7.0
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
ActorRefand you can simply dosystem.ActorOf<IMyActor>("foo").Activate(). Note: activation is idempotent. - Behaviors:
Becomemessage 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
Breaking changes:
Dispatcheroptions are now configurable via extension method onIServiceCollection-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
Breaking changes:
- All actor interfaces are now required to inherit
IGrainWithStringKeytogether withIActorGrain(#148) StorageProviderFacetand[UseStorageProvider]attribute were removed in favor of nativePersistentStateFactory(get it from container) andPersistentStateattribute respectively (doc)- Less strict signature for actor ref middleware (object instead of
TResult) - Naming symmetry between
ActorRefMiddlewareandActorMiddleware(ieReceiveinstead ofSend-Receivepair) - Unified design of
Nexthandling betweenActorRefMiddlewareandActorMiddleware. Now subclasses need to callbase.Receiveto 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:
2.4.4
New features:
- Updated to work with Orelans 2.4.4
- Additional
Orleankka.Legacy.Runtimepackage that contains legacy (1.x) apis and full support for declarative stream subscriptions