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
IInvokable
instead ofInvokeMethodRequest
inMayInterleave
static callbacks DeactivationReason
was added toDeactivate
message- Separated lifecycle messages sent on grain and state activation/deactivation via
Activate.State
andActivate.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 nativeImplicitStreamSubscription
andRegexStreamSubscritpion
attributes - Roundtrip serialization checking in TestKit now accepts
IServiceProvider
and uses serializer registered in container instead of direct use of not available in 7.xSerializer
class CreateObservable()
onIActorSystem
is now synchronous and returns reference toIClientEndpoint
instead ofTask<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
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
ActorRef
and you can simply dosystem.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
Breaking changes:
Dispatcher
options 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
IGrainWithStringKey
together withIActorGrain
(#148) StorageProviderFacet
and[UseStorageProvider]
attribute were removed in favor of nativePersistentStateFactory
(get it from container) andPersistentState
attribute respectively (doc)- Less strict signature for actor ref middleware (object instead of
TResult
) - Naming symmetry between
ActorRefMiddleware
andActorMiddleware
(ieReceive
instead ofSend
-Receive
pair) - Unified design of
Next
handling betweenActorRefMiddleware
andActorMiddleware
. Now subclasses need to callbase.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:
2.4.4
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