NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
NuGet · #2636 most downloaded on NuGet
Core runtime library of Microsoft Orleans that hosts and executes grains within a silo.
Last release 5 days ago
03 Oct 2026
Release timing varies
gaps range from 2 weeks to 6 months
Some releases are documented
notes for 9 of 29 stable releases
2 versions withdrawn
withdrawn after publishing
127 years old
41 releases · first in 1900
Nothing published for this version
The most significant change in this release over 10.3.0 is the format used by the version contract compatibility analyzers. The other changes are test
The most significant change in this release over 10.3.0 is the format used by the version contract compatibility analyzers. The other changes are test and docs fixes.
Full Changelog: v10.3.0...v10.3.1
One column per quarter.
Update vulnerable SSH.NET and nanoid dependencies by @ReubenBond in #10678
Orleans 10.3.0 expands the platform across clustering, streaming, persistence, integrations, serialization, and developer tooling while delivering a broad reliability and performance pass. Major outcomes include stronger distributed-directory and membership behavior, new streaming and storage providers, hardened transactions and durable jobs, incremental source generation, safer JSON storage deserialization, and new application templates. Alongside these features and fixes, the release optimizes key runtime paths, comprehensively refreshes the docs, strengthens testing and CI, and updates dependencies and repository maintenance.
Important
Review these changes before upgrading. This release contains three intentionally behavior-changing updates.
$type metadata only for types permitted by Orleans' configured type filters and manifest. Existing wire data remains readable when its types are allowed; [GenerateSerializer] types and standard permitted BCL types continue to work without changes. If persisted, streamed, or transactional JSON contains other types, reads now fail with an actionable JsonSerializationException. Prefer registering those types through TypeManifestOptions.AllowedTypes, [GenerateSerializer], ITypeNameFilter, or ITypeFilter; OrleansJsonSerializerOptions.AllowAllTypes = true restores the former permissive JSON behavior when a narrowly scoped allow-list is not practical.rpc.system.name; Orleans-specific service, target, and source metadata move to orleans.rpc.service, orleans.rpc.target_id, and orleans.rpc.source_id. The runtime-side rpc.method value is now qualified as <interface>/<method>, and affected ActivitySource versions are incremented. Update dashboards, alerts, collectors, and queries which depend on the legacy rpc.system, rpc.service, rpc.orleans.target_id, or rpc.orleans.source_id keys or the previous method value.IConfigureGrainContext actions before grain construction, so constructors can observe fully configured context state. Custom IGrainContextActivator implementations must migrate from CreateContext(GrainAddress) to CreateContext(GrainAddress, IConfigureGrainContext[]) and apply the supplied configurators before constructing the grain. Stateless-worker configurators continue to apply to the outer stateless-worker context.DbDataSource support, and improved Azure, ZooKeeper, Redis, NATS, and relational-provider behavior extend and stabilize integrations (#8462, #8699, #10326, #10429, #10381, #10437, #10835, #10422, #10505, #10276).Every change from the autogenerated changelog is listed once below.
Runtime, clustering, reminders & resilience (34)Note truncated.
test: speed up shutdown timer readiness tests by @ReubenBond in #10214
Full Changelog: v10.2.0...v10.2.2
Reverts the message destination receiver cache changes from #10064 (commit: d3c2af3 )
Reverts the message destination receiver cache changes from #10064 (commit: d3c2af3)
Full Changelog: v10.2.0...v10.2.1
Breaking changes and notable behavior changes
Orleans v10.2.0 focuses on runtime reliability, grain directory correctness, observability, Durable Jobs and journaling improvements, provider fixes, and a broad test/CI stabilization push.
grain_type tags on request timeout/cancel counters (#10178), a Dashboard lifecycle dependency graph (#10145), and migration of Orleans metrics to IMeterFactory (#10201).ArcBuffer support (#10066), built-in codecs for collection interface types (#10104, #10106), serializer conformance baselines (#10034), and safer request-context deserialization (#10017).IConnectionMultiplexer via ServiceKey no longer dispose that shared multiplexer on shutdown. Providers which create their own multiplexer still own and dispose it. (#10146, #10182)Orleans.Runtime.Instruments.Meter should resolve OrleansInstruments from DI and use its Meter instead. (#10201)JournaledStateManagerOptions.JournalFormatKey = "orleans-binary" to retain the old format for new writes. (#9973)ValidateInitialConnectivity stage runs before BecomeActive, keeping silos in Joining until initial peer connectivity is validated. (#10153)OrleansMessageRejectionException and ConnectionFailedException, with a longer default retry window. (#10140)GrainLifecycleEvents.ListenerName is now correctly "Orleans.GrainLifecycle"; code subscribing by the previous string literal should update. (#10121)IJournalStorageCatalog. (#10112, #10148)StorageType enum values are rejected at startup. (#10176)PlacementService workers during silo shutdown. (#9993)InsideRuntimeClient response handling, and removing locks from activation response processing. (#10118, #10119, #10129, #10127, #10128, #10139, #10141)ITimerRegistry on SystemTarget instances, enabling grain services/system targets to use features such as async enumerable cleanup timers without manual registration. (#10038)JsonConvert.DefaultSettings by moving reminder row serialization to System.Text.Json. (#10099)File or Memory) and validation for invalid storage-type values. (#10028, #10176)Confirm when storage failures occur, and improved classification of conflict/precondition responses. (#10123)TransactionResponse diagnostic formatting. (#10083)TypeConverter.ParseInternal alias resolution, enabled nullable annotations, and added support for JSON framework types in type conversion. (#10032)ArcBuffer support across serialization reader/writer/deserializer paths for lower-copy high-throughput scenarios. (#10066)IEnumerable<T>, IReadOnlyList<T>, ISet<T>, and dictionary interfaces. (#10104, #10106)System.Text.Json source-generated metadata. (#9973)IJournalStorageCatalog and optional journal metadata operations to support storage discovery and metadata updates. (#10112)DurableJob, and metrics for scheduling, dispatch lag, attempts, handler execution, shard processing, storage batches, and ownership checks. (#10151)[LoggerMessage] methods, reducing disabled-log overhead and allocations. (#10018, #10019, #10020, #10021, #10022, #10023, #10024, #10025, #10026)ObservableGauge, matching point-in-time memory semantics for exporters such as Prometheus. (#10029)grain_type tags to application request timeout and cancellation counters. (#10178)IMeterFactory for correct DI scoping, listener registration, test isolation, and multi-host scenarios. This covered networking, watchdog, gateway, scheduler, consistent ring, storage, catalog, client, reminder, directory, grain, stream, messaging, messaging processing, Durable Jobs, Azure Blob journal storage, journaling, environment statistics, stream cache, Event Hubs receiver/cache, and stream receiver metrics. (#10137, #10138, #10142, #10143, #10144, #10162, #10168, #10169, #10172, #10173, #10175, #10177, #10179, #10180, #10181, #10183, #10184, #10193, #10194, #10195, #10199, #10200)IMeterFactory migration. (#10201)AdaptivePing benchmark with hill-climbing concurrency tuning and improved convergence rules for more reproducible throughput measurements. (#10069, #10076)Note truncated.
Source link on dashboard to main orleans repo by @hendrikdevloed in #9911
ConfigureAwait analyzer for grain code (ORLEANS0014) by @ReubenBond in #9845IServiceLifecycle interface with lifecycle hooks for client and silo by @ledjon-behluli in #9792Full Changelog: v10.0.1...v10.1.0
Fix DynamoDB ExclusiveStartKey handling for AWS SDK v4 by @ReubenBond in #9884
PooledBuffer cleanup by @pentp in #9871Full Changelog: v10.0.0...v10.0.1
Your coding agent can read these notes before it upgrades. Set up the MCP server →