- Graceful shutdown of a silo with deactivation of all grains hosted in it.
- Support for Dependency Injection and better testability of grains:
- Direct instantiation of grains with passing
IGrainIdentity
andIGrainRuntime
to constructor. IGrainRuntime
is a mockable interface that includes a set of system service interfaces, also mockable.GrainFactory
is a non-static class that is accessed viabase.GrainFactory
from within a grain and viaGrainClient.GrainFactory
on the client.
- Direct instantiation of grains with passing
- Deprecated generated per-interface
GetGrain
static factory methods. - Added support for concrete grain state classes, deprecated grain state interfaces and code generation of grain classes.
- Removed
Read/Write/ClearStateAsync
methods fromIGrainState
and moved them toGrain<T>
. - Performance optimizations of messaging with up to 40% improvements in throughput.
- Added
ZooKeeper
based cluster membership storage option. - Removed compile time dependency on
Microsoft.WindowsAzure.ServiceRuntime.dll.
- Consolidated dependencies on Azure in
OrleansAzureUtils.dll
, which is now optional. - Refactored SQL system store to be more robust and vendor agnostic.
- Added streaming event deliver policy and failure reporting.
- Changed VS project templates to use only NuGet packages and not the SDK.
- Removed binaries and local silo environment from the SDK.
- Numerous bug fixes and other improvements.