| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-06-12 | 37.7 kB | |
| v10.2.0 source code.tar.gz | 2026-06-12 | 3.4 MB | |
| v10.2.0 source code.zip | 2026-06-12 | 5.6 MB | |
| Totals: 3 Items | 9.1 MB | 0 | |
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.
Highlights
- Runtime and grain directory reliability: fixes for activation/deactivation races (#10016, #10046), shutdown cleanup (#10206), membership reconciliation (#10086), directory transfer batching (#10047, #10053), stale cache invalidation (#10078, #10105), and rolling-upgrade compatibility (#10050).
- Journaling and Durable Jobs: JSON Lines is now the default Orleans.Journaling format (#9973), Durable Jobs use the journaling catalog (#10148), and new tracing/metrics make job scheduling and execution observable (#10151).
- Observability: expanded activation and grain directory metrics (#10124, #10125, #10147),
grain_typetags on request timeout/cancel counters (#10178), a Dashboard lifecycle dependency graph (#10145), and migration of Orleans metrics toIMeterFactory(#10201). - Provider stability: reminder delivery and shutdown behavior were hardened (#10154, #10155), Cosmos fixes landed for reminder deletes, ETags, and indexing (#10037, #10041, #10084), Redis reminder serialization and multiplexer ownership were fixed (#10099, #10146, #10182), NATS storage configuration was added (#10028, #10176), Azure retry behavior improved (#10192), and streaming checkpoint persistence was fixed (#10096).
- Serialization: added
ArcBuffersupport (#10066), built-in codecs for collection interface types (#10104, #10106), serializer conformance baselines (#10034), and safer request-context deserialization (#10017). - Testing and CI: many flaky tests were made deterministic (#10101, #10186, #10216), provider Docker pulls became retryable (#10190, #10191, #10198), artifact uploads are non-blocking (#10158), workflows are more secure (#10027, #10102), and SDK/frontend dependencies were updated (#10205, #9998).
Breaking changes and notable behavior changes
- Redis multiplexer ownership: Redis providers using a DI-provided
IConnectionMultiplexerviaServiceKeyno longer dispose that shared multiplexer on shutdown. Providers which create their own multiplexer still own and dispose it. (#10146, [#10182]) - Metrics meter access: the static Orleans meter was removed. Code which referenced
Orleans.Runtime.Instruments.Metershould resolveOrleansInstrumentsfrom DI and use itsMeterinstead. (#10201) - Journaling default format: JSON Lines is now the default Orleans.Journaling storage format. Existing journals with stored format metadata continue to be read correctly; legacy entries without metadata are treated as OrleansBinary and migrate on snapshot write. Set
JournaledStateManagerOptions.JournalFormatKey = "orleans-binary"to retain the old format for new writes. (#9973) - Silo startup lifecycle: a new
ValidateInitialConnectivitystage runs beforeBecomeActive, keeping silos inJoininguntil initial peer connectivity is validated. (#10153) - Reminder lifecycle: reminder delivery is gated on the silo becoming active, while reminder register/update/unregister operations remain available later into shutdown. (#10154, [#10155])
- Client connection retries: the default client retry filter now retries additional transient gateway/startup failures, including
OrleansMessageRejectionExceptionandConnectionFailedException, with a longer default retry window. (#10140) - Directory activation-failure retries: retry loops after directory activation failures are now bounded by the normal message forward-count budget. (#10094)
- Diagnostics listener name:
GrainLifecycleEvents.ListenerNameis now correctly"Orleans.GrainLifecycle"; code subscribing by the previous string literal should update. (#10121) - Durable Jobs storage providers: custom Durable Jobs journaling providers need catalog support via
IJournalStorageCatalog. (#10112, [#10148]) - NATS options validation: invalid
StorageTypeenum values are rejected at startup. (#10176)
Runtime, activation, placement, and lifecycle
- Fixed a stateless-worker reactivation race and a crash when cancelling indefinite keep-alive tickets. (#10016, [#10014])
- Fixed stuck deactivation recovery by removing stranded activations from the catalog, unregistering directory entries, and avoiding stale forwarding loops. (#10046)
- Fixed shutdown activations leaving stale grain directory entries. (#10206)
- Made the activation collector safer under memory pressure and when there are no valid candidates. (#10113)
- Stopped and awaited
PlacementServiceworkers during silo shutdown. (#9993) - Prevented persistent stream pulling agents from accepting work or processing queue reads after shutdown starts. (#10036)
- Stabilized late lifecycle registration scheduling to avoid lock/scheduler races. (#10135)
- Added explicit initial connectivity validation before a silo becomes active. (#10153)
- Avoided tracking deactivated grains in activation repartitioner state and fixed repartitioning waits for inactive migrations. (#10061, [#10130])
- Reduced runtime hot-path overhead by avoiding per-activation scheduler logger fields, reducing request monitoring memory use, avoiding context capture in outgoing calls, optimizing response completion sources, simplifying
InsideRuntimeClientresponse handling, and removing locks from activation response processing. (#10118, [#10119], [#10129], [#10127], [#10128], [#10139], [#10141]) - Broadened the default client connection retry filter to cover more transient startup and gateway failures. (#10140)
Grain directory, routing, and cache correctness
- Added TTL cleanup to the grain directory cache and diagnostic hooks for cache state changes. (#10055)
- Added a fast-path message destination cache for grain calls, with invalidation on activation, connection, gateway, and client state changes. (#10064)
- Capped cache invalidation header growth during message send and deserialization. (#10078, [#10105])
- Set target silo metadata correctly on cached silo connections. (#10080)
- Capped distributed directory ownership transfer batch sizes and split large transfer payloads into multiple messages. (#10047, [#10053])
- Fixed distributed directory recovery handoff for grains activating during ownership transfer. (#10082)
- Added distributed remote grain directory compatibility for rolling upgrades and a regression test for directory migration joins. (#10050, [#10049])
- Fixed LocalGrainDirectory membership reconciliation using snapshot-based processing, membership-version-aware stale cleanup, and membership refresh before directory RPC routing. (#10086, [#10087], [#10088])
- Simplified LocalGrainDirectory membership processing after the reconciliation changes. (#10089)
- Refined directory forwarding retry checks, removed a problematic directory failure forwarding optimization, and bounded retries after directory activation failures. (#10092, [#10095], [#10094])
- Restored the local grain directory lookup fast path for locally-owned partitions. (#10126)
Reminders, timers, providers, storage, and streaming
Reminders and timers
- Added reminder lifecycle diagnostics and deterministic reminder testing infrastructure. (#10033)
- Fixed immediate local reminder scheduling when the first tick is already due. (#10040)
- Gated reminder tick delivery on active silos and allowed reminder updates during shutdown cleanup. (#10154, [#10155])
- Auto-registered
ITimerRegistryonSystemTargetinstances, enabling grain services/system targets to use features such as async enumerable cleanup timers without manual registration. (#10038)
Cosmos DB
- Treated missing Cosmos reminder deletes as successful idempotent unregisters. (#10037)
- Preserved Cosmos reminder ETags so stale conditional deletes can be detected correctly. (#10041)
- Stabilized Cosmos reminder/container startup behavior and removed Cosmos DB CI exclusions. (#10059, [#10042])
- Fixed Cosmos indexing paths for newer emulator/service versions. (#10084)
Redis
- Isolated Redis reminder serialization from application-level
JsonConvert.DefaultSettingsby moving reminder row serialization toSystem.Text.Json. (#10099) - Fixed Redis multiplexer ownership so shared DI-provided multiplexers are not disposed by Orleans providers, and added disposal/ownership tests for the Redis grain directory. (#10146, [#10182])
NATS, SQS, memory storage, Azure Storage, transactions, and streaming
- Added configurable NATS JetStream storage type (
FileorMemory) and validation for invalid storage-type values. (#10028, [#10176]) - Added ElasticMQ-backed SQS provider coverage in CI. (#10003)
- Enabled nullable annotations in memory storage provider builder extensions. (#10110)
- Fixed an Azure Table transaction atomicity issue during
Confirmwhen storage failures occur, and improved classification of conflict/precondition responses. (#10123) - Reduced Azure Table retry pressure with bounded jittered backoff and less duplicate retrying under storage outages. (#10192)
- Fixed streaming checkpoint gaps which could cause replay after restart. (#10096)
- Fixed
TransactionResponsediagnostic formatting. (#10083)
Serialization, analyzers, journaling, and Durable Jobs
Serialization and analyzers
- Capped request-context dictionary preallocation during message deserialization to protect against oversized encoded counts. (#10017)
- Fixed
TypeConverter.ParseInternalalias resolution, enabled nullable annotations, and added support for JSON framework types in type conversion. (#10032) - Added serializer conformance tests and baselines for codec authors and regression detection. (#10034)
- Added
ArcBuffersupport across serialization reader/writer/deserializer paths for lower-copy high-throughput scenarios. (#10066) - Added built-in codecs and snapshots for BCL collection interface types, including
IEnumerable<T>,IReadOnlyList<T>,ISet<T>, and dictionary interfaces. (#10104, [#10106]) - Fixed Orleans analyzers to match framework types by fully-qualified metadata name instead of short name, avoiding false positives/negatives when user code has similarly named types. (#10107)
Orleans.Journaling
- Added the JSON Lines journal format and made it the default for new journal writes, with opt-in APIs for configuring
System.Text.Jsonsource-generated metadata. (#9973) - Added
IJournalStorageCatalogand optional journal metadata operations to support storage discovery and metadata updates. (#10112) - Made Azure Blob journal compaction checkpoint publication safer using immutable generation-scoped checkpoints. (#10103)
- Added Azure Blob journal storage metrics and retry tuning for metadata-only ETag conflicts. (#10149)
Durable Jobs
- Ported Durable Jobs to the journaled storage catalog, so shard discovery is backed by Orleans.Journaling. (#10148)
- Improved journaled shard throughput by batching writes with a configurable linger delay. (#10150)
- Added Durable Jobs tracing, trace propagation fields on
DurableJob, and metrics for scheduling, dispatch lag, attempts, handler execution, shard processing, storage batches, and ownership checks. (#10151) - Added a Durable Jobs journaling playground sample. (#10152)
API surface and diagnostics
- Updated generated public API surface baselines. (#9986, [#10171], [#10204])
- Fixed the API-diff validation action to avoid disallowed operations. (#10120)
- Fixed the grain lifecycle diagnostic listener name. (#10121)
Observability, metrics, logging, and Dashboard
- Migrated logging in transactions test kit, testing host, event sourcing, reminders, runtime, Dashboard, Durable Jobs, TLS middleware, and async enumerable streaming to source-generated
[LoggerMessage]methods, reducing disabled-log overhead and allocations. (#10018, [#10019], [#10020], [#10021], [#10022], [#10023], [#10024], [#10025], [#10026]) - Changed runtime memory metrics to
ObservableGauge, matching point-in-time memory semantics for exporters such as Prometheus. (#10029) - Implemented remaining grain directory metrics for snapshot transfers, range recovery, range-lock hold time, and registrations. (#10124)
- Added activation lifecycle latency histograms and activation population/lifecycle counters. (#10125, [#10147])
- Added
grain_typetags to application request timeout and cancellation counters. (#10178) - Added a Dashboard silo lifecycle dependency graph view for inspecting startup/shutdown stage ordering and registered lifecycle observers. (#10145)
- Migrated Orleans metrics to
IMeterFactoryfor 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]) - Removed the static Orleans meter after the
IMeterFactorymigration. (#10201)
Testing, benchmarks, CI, docs, and dependencies
Test reliability and speed
- Replaced timing-sensitive waits with deterministic synchronization for stateless-worker late delivery, async enumerable slow-consumer tests, activation rebalancing, deactivation placement, broadcast channels, idle/deactivate-on-idle behavior, reminder scheduling, activation collection, placement migration, journaling recovery retry, transaction fault injection, stream generator reset, rolling-upgrade directory behavior, streaming client drops, runtime timers, membership health monitoring, queue balancer changes, liveness stabilization, upgrade readiness, timer callbacks, and consistent ring provider tests. (#10077, [#10101], [#10131], [#10132], [#10134], [#10156], [#10157], [#10159], [#10163], [#10166], [#10170], [#10185], [#10186], [#10187], [#10188], [#10189], [#10207], [#10208], [#10209], [#10212], [#10213], [#10215], [#10216], [#10220])
- Removed slow or redundant sleeps in ring cleanup and sped up membership health monitor, runtime timer, and collector tests. (#10210, [#10207], [#10209])
Benchmarks
- Added an
AdaptivePingbenchmark with hill-climbing concurrency tuning and improved convergence rules for more reproducible throughput measurements. (#10069, [#10076])
CI and workflow reliability
- Added explicit least-privilege GitHub Actions permissions and restricted maintenance workflows to the upstream repository. (#10027, [#10102])
- Made artifact uploads non-blocking so upload failures do not fail otherwise successful jobs. (#10158)
- Made MariaDB, Azure emulator, and provider Docker pulls more resilient to registry/network timeouts. (#10190, [#10191], [#10198])
- Skipped external Dashboard asset builds in provider test jobs to reduce unrelated npm/network failures. (#10196)
- Repaired the API diff workflow. (#10164)
- Updated GitHub Actions to Node.js 24. (#10203)
Documentation and contributor workflow
- Documented the upstream PR workflow and required Conventional Commits for future contribution history. (#10056, [#10133])
- Corrected cluster membership heartbeat/defaults documentation. (#10197)
SDK and dependency updates
- Updated the pinned .NET SDK from 10.0.201 to 10.0.203, then 10.0.300, then 10.0.301. (#10015, [#10097], [#10205])
- Updated Dashboard frontend dependencies:
minimatch,picomatch,flatted,postcss,rollup, andvite. (#9956, [#9974], [#9967], [#10043], [#9957], [#9998])
What's Changed
- Fix reactivation race in
StatelessWorkerGrainContextby @ReubenBond in https://github.com/dotnet/orleans/pull/10016 - chore(loggermessage): migrate reminder logging by @ReubenBond in https://github.com/dotnet/orleans/pull/10021
- chore(loggermessage): migrate runtime logging by @ReubenBond in https://github.com/dotnet/orleans/pull/10022
- chore(loggermessage): migrate async enumerable logging by @ReubenBond in https://github.com/dotnet/orleans/pull/10026
- chore(loggermessage): migrate transactions test kit logging by @ReubenBond in https://github.com/dotnet/orleans/pull/10018
- Add ElasticMQ SQS CI coverage by @ReubenBond in https://github.com/dotnet/orleans/pull/10003
- chore(loggermessage): migrate dashboard logging by @ReubenBond in https://github.com/dotnet/orleans/pull/10023
- chore(loggermessage): migrate durable jobs logging by @ReubenBond in https://github.com/dotnet/orleans/pull/10024
- chore(loggermessage): migrate TLS middleware logging by @ReubenBond in https://github.com/dotnet/orleans/pull/10025
- GitHub Actions: add explicit permissions to workflows by @ReubenBond in https://github.com/dotnet/orleans/pull/10027
- fix(message-serializer): cap request context initial capacity by @ReubenBond in https://github.com/dotnet/orleans/pull/10017
- chore(loggermessage): migrate testing host logging by @ReubenBond in https://github.com/dotnet/orleans/pull/10019
- chore(loggermessage): migrate event sourcing logging by @ReubenBond in https://github.com/dotnet/orleans/pull/10020
- chore(deps-dev): bump minimatch from 3.1.2 to 3.1.5 in /src/Dashboard/Orleans.Dashboard.App by @dependabot[bot] in https://github.com/dotnet/orleans/pull/9956
- Add configurable storage type to NATS streaming provider by @Cluster7ck in https://github.com/dotnet/orleans/pull/10028
- Add aliases in TypeConverter.ParseInternal, implement nullability, add JSON types by @ReubenBond in https://github.com/dotnet/orleans/pull/10032
- Add serializer conformance tests and baselines by @ReubenBond in https://github.com/dotnet/orleans/pull/10034
- Use ObservableGauge for runtime memory metrics in EnvironmentStatisticsProvider by @Copilot in https://github.com/dotnet/orleans/pull/10029
- ActivationCollector: Fix ArgumentException when cancelling indefinite keep-alive by @tomachristian in https://github.com/dotnet/orleans/pull/10014
- chore(deps): bump dotnet-sdk from 10.0.201 to 10.0.203 by @dependabot[bot] in https://github.com/dotnet/orleans/pull/10015
- Reminders: add lifecycle diagnostics and testing infrastructure by @ReubenBond in https://github.com/dotnet/orleans/pull/10033
- Handle missing Cosmos reminder deletes by @ReubenBond in https://github.com/dotnet/orleans/pull/10037
- Fix immediate local reminder scheduling by @ReubenBond in https://github.com/dotnet/orleans/pull/10040
- Preserve Cosmos reminder ETags for stale delete checks by @ReubenBond in https://github.com/dotnet/orleans/pull/10041
- Stop PlacementService workers during shutdown by @ReubenBond in https://github.com/dotnet/orleans/pull/9993
- Prevent post-shutdown stream agent calls by @ReubenBond in https://github.com/dotnet/orleans/pull/10036
- Remove CosmosDB CI test exclusions by @ReubenBond in https://github.com/dotnet/orleans/pull/10042
- Fix stuck deactivation recovery by @ReubenBond in https://github.com/dotnet/orleans/pull/10046
- Document upstream PR workflow by @ReubenBond in https://github.com/dotnet/orleans/pull/10056
- Add TTL cleanup to grain directory cache by @ReubenBond in https://github.com/dotnet/orleans/pull/10055
- Add AdaptivePing benchmark with hill-climbing concurrency tuning by @ReubenBond in https://github.com/dotnet/orleans/pull/10069
- Add ArcBuffer support to Orleans serialization by @ReubenBond in https://github.com/dotnet/orleans/pull/10066
- Add fast-path message destination cache by @ReubenBond in https://github.com/dotnet/orleans/pull/10064
- Cap distributed directory ownership transfer batch size by @ReubenBond in https://github.com/dotnet/orleans/pull/10047
- Limit cache invalidation header growth by @ReubenBond in https://github.com/dotnet/orleans/pull/10078
- Set target silo for cached silo connections by @ReubenBond in https://github.com/dotnet/orleans/pull/10080
- Fix DistributedGrainDirectory recovery handoff for activating grains by @ReubenBond in https://github.com/dotnet/orleans/pull/10082
- Fix TransactionResponse diagnostic formatting by @ReubenBond in https://github.com/dotnet/orleans/pull/10083
- Fix Cosmos reminder flake by @ReubenBond in https://github.com/dotnet/orleans/pull/10059
- Improve AdaptivePing convergence by @ReubenBond in https://github.com/dotnet/orleans/pull/10076
- Fix stateless worker late-delivery race test flake by @ReubenBond in https://github.com/dotnet/orleans/pull/10077
- Add distributed remote grain directory compatibility by @ReubenBond in https://github.com/dotnet/orleans/pull/10050
- Batch large directory transfer payloads by @ReubenBond in https://github.com/dotnet/orleans/pull/10053
- Add directory migration join regression by @ReubenBond in https://github.com/dotnet/orleans/pull/10049
- chore(deps): bump picomatch in /src/Dashboard/Orleans.Dashboard.App by @dependabot[bot] in https://github.com/dotnet/orleans/pull/9974
- chore(deps-dev): bump flatted from 3.3.3 to 3.4.2 in /src/Dashboard/Orleans.Dashboard.App by @dependabot[bot] in https://github.com/dotnet/orleans/pull/9967
- chore(deps): bump postcss from 8.5.6 to 8.5.12 in /src/Dashboard/Orleans.Dashboard.App by @dependabot[bot] in https://github.com/dotnet/orleans/pull/10043
- chore(deps): bump rollup from 4.52.5 to 4.60.3 in /src/Dashboard/Orleans.Dashboard.App by @dependabot[bot] in https://github.com/dotnet/orleans/pull/9957
- Fix LocalGrainDirectory membership reconciliation by @ReubenBond in https://github.com/dotnet/orleans/pull/10086
- Use membership versions for stale directory cleanup by @ReubenBond in https://github.com/dotnet/orleans/pull/10087
- Refresh membership before directory RPC routing by @ReubenBond in https://github.com/dotnet/orleans/pull/10088
- Simplify LocalGrainDirectory membership processing by @ReubenBond in https://github.com/dotnet/orleans/pull/10089
- Remove directory failure forwarding optimization by @ReubenBond in https://github.com/dotnet/orleans/pull/10095
- Refine directory forwarding retry checks by @ReubenBond in https://github.com/dotnet/orleans/pull/10092
- Bound retries after directory activation failures by @ReubenBond in https://github.com/dotnet/orleans/pull/10094
- Fix Cosmos indexing paths for latest emulator by @ReubenBond in https://github.com/dotnet/orleans/pull/10084
- Avoid tracking deactivated grains in repartitioner state by @ReubenBond in https://github.com/dotnet/orleans/pull/10061
- chore(deps): bump dotnet-sdk from 10.0.203 to 10.0.300 by @dependabot[bot] in https://github.com/dotnet/orleans/pull/10097
- chore(deps-dev): bump vite from 5.4.21 to 8.0.11 in /src/Dashboard/Orleans.Dashboard.App by @dependabot[bot] in https://github.com/dotnet/orleans/pull/9998
- Restrict maintenance workflows to upstream repo by @ReubenBond in https://github.com/dotnet/orleans/pull/10102
- Stabilize async enumerable slow consumer tests by @ReubenBond in https://github.com/dotnet/orleans/pull/10101
- Fix Redis reminders affected by JsonConvert defaults by @ReubenBond in https://github.com/dotnet/orleans/pull/10099
- Add JSONL format for Orleans.Journaling by @ReubenBond in https://github.com/dotnet/orleans/pull/9973
- Limit deserialized cache invalidation headers by @ReubenBond in https://github.com/dotnet/orleans/pull/10105
- Add interface collection codecs by @ReubenBond in https://github.com/dotnet/orleans/pull/10104
- Use immutable checkpoints for Azure journal compaction by @ReubenBond in https://github.com/dotnet/orleans/pull/10103
- Enable nullable in memory storage provider builder by @rkargMsft in https://github.com/dotnet/orleans/pull/10110
- fix(analyzers): match by fully qualified name by @sehra in https://github.com/dotnet/orleans/pull/10107
- Add concrete interface collection codec snapshots by @ReubenBond in https://github.com/dotnet/orleans/pull/10106
- Clean up journaling storage provider APIs by @ReubenBond in https://github.com/dotnet/orleans/pull/10112
- Avoid disallowed API diff action by @ReubenBond in https://github.com/dotnet/orleans/pull/10120
- [Automated] Update API Surface Area by @github-actions[bot] in https://github.com/dotnet/orleans/pull/9986
- Fix grain lifecycle diagnostic listener name by @ReubenBond in https://github.com/dotnet/orleans/pull/10121
- Avoid per-activation scheduler logger fields by @ReubenBond in https://github.com/dotnet/orleans/pull/10118
- Implement remaining grain directory metrics by @ReubenBond in https://github.com/dotnet/orleans/pull/10124
- Add activation lifecycle latency metrics by @ReubenBond in https://github.com/dotnet/orleans/pull/10125
- Fix activation collector memory pressure safety by @ReubenBond in https://github.com/dotnet/orleans/pull/10113
- Avoid capturing context in outgoing call invoker by @ReubenBond in https://github.com/dotnet/orleans/pull/10129
- Optimize response completion source by @ReubenBond in https://github.com/dotnet/orleans/pull/10127
- [Transactions] Fix atomicity violation in storage failure handler during Confirm by @ReubenBond in https://github.com/dotnet/orleans/pull/10123
- Refactor InsideRuntimeClient response handling by @ReubenBond in https://github.com/dotnet/orleans/pull/10128
- Avoid waiting for inactive repartitioning migrations by @ReubenBond in https://github.com/dotnet/orleans/pull/10130
- Stabilize activation rebalancer control test by @ReubenBond in https://github.com/dotnet/orleans/pull/10131
- docs: require conventional commits by @ReubenBond in https://github.com/dotnet/orleans/pull/10133
- Make deactivation placement test deterministic by @ReubenBond in https://github.com/dotnet/orleans/pull/10132
- Stabilize broadcast channel CI test waits by @ReubenBond in https://github.com/dotnet/orleans/pull/10134
- Restore local grain directory lookup fast path by @ReubenBond in https://github.com/dotnet/orleans/pull/10126
- chore: Use IMeterFactory for networking metrics by @Meir017 in https://github.com/dotnet/orleans/pull/10137
- chore: Use IMeterFactory for watchdog metrics by @Meir017 in https://github.com/dotnet/orleans/pull/10138
- perf(runtime): receive activation response outside of lock by @ReubenBond in https://github.com/dotnet/orleans/pull/10139
- feat(client): broaden default client connection retry filter by @ReubenBond in https://github.com/dotnet/orleans/pull/10140
- perf(runtime): remove activation response state lock by @ReubenBond in https://github.com/dotnet/orleans/pull/10141
- chore: Use IMeterFactory for gateway metrics by @Meir017 in https://github.com/dotnet/orleans/pull/10142
- chore: Use IMeterFactory for scheduler metrics by @Meir017 in https://github.com/dotnet/orleans/pull/10143
- feat(dashboard): add silo lifecycle dependency graph view by @ReubenBond in https://github.com/dotnet/orleans/pull/10145
- perf(runtime): reduce request monitoring memory footprint by @ReubenBond in https://github.com/dotnet/orleans/pull/10119
- fix: validate connectivity in explicit ValidateInitialConnectivity stage before BecomeActive by @ReubenBond in https://github.com/dotnet/orleans/pull/10153
- feat(runtime): add activation metrics by @ReubenBond in https://github.com/dotnet/orleans/pull/10147
- fix(reminders): gate delivery on active silo by @ReubenBond in https://github.com/dotnet/orleans/pull/10154
- feat(durablejobs): port to journaled storage catalog by @ReubenBond in https://github.com/dotnet/orleans/pull/10148
- fix(reminders): allow grains to update reminders during shutdown by @ReubenBond in https://github.com/dotnet/orleans/pull/10155
- feat(journaling-azure): add instrumentation and retry tuning by @ReubenBond in https://github.com/dotnet/orleans/pull/10149
- perf(durablejobs): improve journaled shard throughput by @ReubenBond in https://github.com/dotnet/orleans/pull/10150
- chore: Use IMeterFactory for consistent ring metrics by @Meir017 in https://github.com/dotnet/orleans/pull/10144
- feat(durablejobs,journaling): add tracing and batching metrics by @ReubenBond in https://github.com/dotnet/orleans/pull/10151
- Auto-register
ITimerRegistrycomponent onSystemTargetsby @ledjon-behluli in https://github.com/dotnet/orleans/pull/10038 - test: avoid eager activation in idle test by @ReubenBond in https://github.com/dotnet/orleans/pull/10156
- fix: make transaction fault test deterministic by @ReubenBond in https://github.com/dotnet/orleans/pull/10157
- fix(lifecycle): stabilize late registration scheduling by @ReubenBond in https://github.com/dotnet/orleans/pull/10135
- Fix deterministic reminder scheduling waits by @ReubenBond in https://github.com/dotnet/orleans/pull/10159
- ci: make artifact uploads non-blocking by @ReubenBond in https://github.com/dotnet/orleans/pull/10158
- chore(playground): add DurableJobs journaling playground by @ReubenBond in https://github.com/dotnet/orleans/pull/10152
- test: fix deactivate-on-idle grain selection flake by @ReubenBond in https://github.com/dotnet/orleans/pull/10163
- chore: use meter factory for storage metrics by @Meir017 in https://github.com/dotnet/orleans/pull/10162
- test: stabilize prefer-local placement migration test by @ReubenBond in https://github.com/dotnet/orleans/pull/10166
- fix: repair API diff workflow by @ReubenBond in https://github.com/dotnet/orleans/pull/10164
- chore: use IMeterFactory for ClientInstruments by @Meir017 in https://github.com/dotnet/orleans/pull/10169
- chore: use meter factory for catalog metrics by @Meir017 in https://github.com/dotnet/orleans/pull/10168
- test: make journaling recovery retry tests deterministic by @Meir017 in https://github.com/dotnet/orleans/pull/10170
- chore: use IMeterFactory for ReminderInstruments by @Meir017 in https://github.com/dotnet/orleans/pull/10172
- chore: use IMeterFactory for DirectoryInstruments by @Meir017 in https://github.com/dotnet/orleans/pull/10173
- [Automated] Update API Surface Area by @github-actions[bot] in https://github.com/dotnet/orleans/pull/10171
- chore: use IMeterFactory for GrainInstruments by @Meir017 in https://github.com/dotnet/orleans/pull/10175
- feat: Add grain_type tag to app-request timeout/cancel counters by @Cluster7ck in https://github.com/dotnet/orleans/pull/10178
- chore: use IMeterFactory for StreamInstruments by @Meir017 in https://github.com/dotnet/orleans/pull/10177
- chore: use IMeterFactory for MessagingInstruments by @Meir017 in https://github.com/dotnet/orleans/pull/10179
- fix(redis)!: fix multiplexer ownership by @ReubenBond in https://github.com/dotnet/orleans/pull/10146
- chore: use IMeterFactory for DurableJobsInstruments by @Meir017 in https://github.com/dotnet/orleans/pull/10181
- fix(nats): Validate StorageType and pin NATS test endpoint (follow-up to [#10028]) by @Cluster7ck in https://github.com/dotnet/orleans/pull/10176
- chore: use IMeterFactory for JournalingInstruments by @Meir017 in https://github.com/dotnet/orleans/pull/10184
- fix(redis): consistent grain directory disposal + multiplexer ownership tests by @ReubenBond in https://github.com/dotnet/orleans/pull/10182
- chore: use IMeterFactory for AzureBlobJournalStorageInstruments by @Meir017 in https://github.com/dotnet/orleans/pull/10183
- chore: use IMeterFactory for MessagingProcessingInstruments by @Meir017 in https://github.com/dotnet/orleans/pull/10180
- fix: make bank transfer fault test deterministic by @ReubenBond in https://github.com/dotnet/orleans/pull/10185
- test: make stream generator reset deterministic by @ReubenBond in https://github.com/dotnet/orleans/pull/10188
- chore: use meter factory for environment statistics metrics by @Meir017 in https://github.com/dotnet/orleans/pull/10193
- chore: use meter factory for stream cache metrics by @Meir017 in https://github.com/dotnet/orleans/pull/10194
- chore: use meter factory for event hub receiver metrics by @Meir017 in https://github.com/dotnet/orleans/pull/10195
- ci: make Azure emulator Docker pulls resilient by @ReubenBond in https://github.com/dotnet/orleans/pull/10191
- fix: stabilize activation rebalancing control test by @ReubenBond in https://github.com/dotnet/orleans/pull/10189
- ci: skip external asset builds in provider tests by @ReubenBond in https://github.com/dotnet/orleans/pull/10196
- ci: make provider Docker pulls resilient by @ReubenBond in https://github.com/dotnet/orleans/pull/10198
- chore: use meter factory for stream receiver metrics by @Meir017 in https://github.com/dotnet/orleans/pull/10199
- docs: fix cluster membership heartbeat defaults by @ReubenBond in https://github.com/dotnet/orleans/pull/10197
- ci: update GitHub Actions to Node.js 24 by @Meir017 in https://github.com/dotnet/orleans/pull/10203
- chore: use meter factory for Event Hubs cache metrics by @Meir017 in https://github.com/dotnet/orleans/pull/10200
- chore: remove static Orleans meter by @Meir017 in https://github.com/dotnet/orleans/pull/10201
- test: stabilize reminder and activation collection tests by @ReubenBond in https://github.com/dotnet/orleans/pull/10186
- fix(storage): reduce Azure table retry pressure by @ReubenBond in https://github.com/dotnet/orleans/pull/10192
- chore(deps): bump dotnet-sdk from 10.0.300 to 10.0.301 by @dependabot[bot] in https://github.com/dotnet/orleans/pull/10205
- fix(streaming): prevent checkpoint gaps causing replay by @fickleEfrit in https://github.com/dotnet/orleans/pull/10096
- ci: make MariaDB CI pulls resilient to timeouts by @ReubenBond in https://github.com/dotnet/orleans/pull/10190
- test: stabilize grain directory rolling upgrade test by @ReubenBond in https://github.com/dotnet/orleans/pull/10187
- fix(runtime): unregister shutdown activations from directory by @ReubenBond in https://github.com/dotnet/orleans/pull/10206
- test: remove slow ring cleanup sleep by @ReubenBond in https://github.com/dotnet/orleans/pull/10210
- test: speed up runtime timer and collector tests by @ReubenBond in https://github.com/dotnet/orleans/pull/10209
- test: speed up membership health monitor tests by @ReubenBond in https://github.com/dotnet/orleans/pull/10207
- test: add event waits for streaming client drops by @ReubenBond in https://github.com/dotnet/orleans/pull/10208
- test: wait for upgrade cluster readiness by @ReubenBond in https://github.com/dotnet/orleans/pull/10215
- [Automated] Update API Surface Area by @github-actions[bot] in https://github.com/dotnet/orleans/pull/10204
- test: stabilize timer tests with FakeTimeProvider by @ReubenBond in https://github.com/dotnet/orleans/pull/10216
- test: wait for queue balancer changes by @ReubenBond in https://github.com/dotnet/orleans/pull/10212
- Fix consistent ring provider test flake by @ReubenBond in https://github.com/dotnet/orleans/pull/10220
- test: wait for liveness stabilization events by @ReubenBond in https://github.com/dotnet/orleans/pull/10213
New Contributors
- @Cluster7ck made their first contribution in https://github.com/dotnet/orleans/pull/10028
- @fickleEfrit made their first contribution in https://github.com/dotnet/orleans/pull/10096
Full Changelog: https://github.com/dotnet/orleans/compare/v10.1.0...v10.2.0