Skip to content

Releases: dotnet/orleans

v8.2.0-preview1

22 May 23:40
71ea69e
Compare
Choose a tag to compare
v8.2.0-preview1 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: v8.1.0...v8.2.0-preview1

v3.7.2

10 May 18:45
b24e446
Compare
Choose a tag to compare

What's Changed

  • [3.x] Fix directory/cache validation for defunct silos by @ReubenBond in #8498
  • [3.x] Fix potential grain timer deadlock during disposal by @ReubenBond in #8949
  • [3.x] Ensure reminder service is initialized before access by @ReubenBond in #8983

Full Changelog: v3.7.1...v3.7.2

v8.1.0

17 Apr 16:29
deda4ba
Compare
Choose a tag to compare

New features

Integration with Aspire

This release includes initial integration with .NET Aspire, allowing you to configure an Orleans cluster in your Aspire app host, specifying the resources the cluster uses. For example, you can specify that an Azure Table will be used for cluster membership, an Azure Redis resource will be used for the grain directory, and an Azure Blob Storage resource will be used to store grain state. The integration currently supports Redis and Azure Table & Blob storage resources. Support for other resources will be added later.

In the app host project, an Orleans cluster can be declared using the AddOrleans method, and then configured with clustering, grain storage, grain directory, and other providers using methods on the returned builder:

var storage = builder.AddAzureStorage("storage");
var clusteringTable = storage.AddTables("clustering");
var defaultStorage = storage.AddBlobs("grainstate");
var cartStorage = builder.AddRedis("redis-cart");

var orleans = builder.AddOrleans("my-app")
                     .WithClustering(clusteringTable)
                     .WithGrainStorage("Default", grainStorage)
                     .WithGrainStorage("cart", cartStorage);

// Add a server project (also called "silo")
builder.AddProject<Projects.OrleansServer>("silo")
       .WithReference(orleans);

// Add a project with a reference to the Orleans client
builder.AddProject<Projects.FrontEnd>("frontend")
       .WithReference(orleans);

In the client and server projects, add Orleans to the host builder as usual.

// For an Orleans server:
builder.UseOrleans();

// Or, for an Orleans client:
builder.UseOrleansClient();

Orleans will read configuration created by your Aspire app host project and configure the providers specified therein. To allow Orleans to access the configured resources, add them as keyed services using the corresponding Aspire component:

builder.AddKeyedAzureTableService("clustering");
builder.AddKeyedAzureBlobService("grainstate");
builder.AddKeyedRedis("redis-cart");

Resource-optimized placement

Resource-optimized placement, enabled via the [ResourceOptimizedPlacement] attribute on a grain class, balances grains across hosts based on available memory and CPU usage. For more details, see the PR: #8815.

What's Changed

Since 8.1.0-preview3

Additional changes since 8.0.0

New Contributors

Full Changelog: v8.0.0...v8.1.0

v7.2.6

10 Mar 18:45
9aab3f7
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v7.2.5...v7.2.6

v8.1.0-preview3

11 Mar 16:11
85b011a
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v8.1.0-preview2...v8.1.0-preview3

v8.1.0-preview2

23 Feb 00:46
18311da
Compare
Choose a tag to compare

What's Changed

  • Fix PooledBuffer serialization by @ReubenBond in #8852
  • Prepare the FabricBot config for migration to Policy Service by @jeffhandley in #8855
  • Address IDE0038. Use pattern matching. by @IEvangelist in #8619
  • Always reset RuntimeContext to previous value after use by @ReubenBond in #8864
  • Distributed Tracing: Use recommended conventions by @ReubenBond in #8856
  • FabricBot: Onboarding to GitOps.ResourceManagement because of FabricBot decommissioning by @dotnet-policy-service in #8869

New Contributors

  • @dotnet-policy-service made their first contribution in #8869

Full Changelog: v8.1.0-preview1...v8.1.0-preview2

v7.2.5

22 Feb 23:51
b7bf45f
Compare
Choose a tag to compare

What's Changed

  • Avoid resending unchanged ClusterManifest to clients by @ReubenBond in #8772
  • Fix PooledBuffer serialization & initialize ActivationMigrationManager on startup by @ReubenBond in #8861
  • Always reset RuntimeContext to previous value after use (#8864) by @ReubenBond in #8870

Full Changelog: v7.2.4...v7.2.5

v8.1.0-preview1

13 Feb 15:58
34f7e0b
Compare
Choose a tag to compare

New features

Integration with Aspire

This release includes initial integration with Aspire Preview 3 and later, allowing you to configure an Orleans cluster in your Aspire app host, specifying the resources the cluster uses. For example, you can specify that an Azure Table will be used for cluster membership, an Azure Redis resource will be used for the grain directory, and an Azure Blob Storage resource will be used to store grain state. The integration currently support Redis and Azure Table & Blob storage resources. Support for other resources will be added later.

In the app host project, an Orleans cluster can be declared using the AddOrleans method, and then configured with clustering, grain storage, grain directory, and other providers using methods on the returned builder:

var storage = builder.AddAzureStorage("storage");
var clusteringTable = storage.AddTables("clustering");
var defaultStorage = storage.AddBlobs("grainstate");
var cartStorage = builder.AddRedis("redis-cart");

var orleans = builder.AddOrleans("my-app")
                     .WithClustering(clusteringTable)
                     .WithGrainStorage("Default", grainStorage)
                     .WithGrainStorage("cart", cartStorage);

// Add a server project (also called "silo")
builder.AddProject<Projects.OrleansServer>("silo")
       .WithReference(orleans);

// Add a project with a reference to the Orleans client
builder.AddProject<Projects.FrontEnd>("frontend")
       .WithReference(orleans);

In the client and server projects, add Orleans to the host builder as usual.

// For an Orleans server:
builder.UseOrleans();

// Or, for an Orleans client:
builder.UseOrleansClient();

Orleans will read configuration created by your Aspire app host project and configure the providers specified therein. To allow Orleans to access the configured resources, add them as keyed services using the corresponding Aspire component:

builder.AddKeyedAzureTableService("clustering");
builder.AddKeyedAzureBlobService("grainstate");
builder.AddKeyedRedis("redis-cart");

Resource-optimized placement

Resource-optimized placement, enabled via the [ResourceOptimizedPlacement] attribute on a grain class, balances grains across hosts based on available memory and CPU usage. For more details, see the PR: #8815.

What's Changed

New Contributors

Full Changelog: v8.0.0...v8.1.0-preview1

v8.0.0

05 Jan 20:28
71b58f4
Compare
Choose a tag to compare

What's Changed Since v7.0.0

Read more

v8.0.0-rc2

20 Dec 20:36
94a83eb
Compare
Choose a tag to compare

Changes from v8.0.0-rc1

  • Prevent PlacementWorker.ProcessLoop from running on foreign schedulers by @ReubenBond in #8760
  • Fix stack deserialization order by @ReubenBond in #8768
  • Ensure that all in-built codecs and copiers have corresponding tests, fix issues found by @ReubenBond in #8769
  • Prevent external codecs from serializing types which are abstract, generated, or from the framework itself by @ReubenBond in #8765
  • Avoid generating IActivator for abstract types by @ledjon-behluli in #8777
  • Avoid sending cluster manifest to client if client already has the latest version by @453873 in #8728
  • ClientClusterManifestProvider: fix case where gateway returns no update by @HermesNew in #8782
  • Use UpDownCounter for grain and system target counts by @Costo in #8781
  • Reduce logging noise from MemoryStorage, InsideRuntimeClient, and LocalGrainDirectory by @ReubenBond in #8780
  • Fix proxy class type name violation on code-gen by @ledjon-behluli in #8785
  • Fixes duplicate code-gen for CompoundTypeAliasTree with isolated base interface(s) by @ledjon-behluli in #8788

New Contributors

Full Changelog: v8.0.0-rc1...v8.0.0-rc2