review-performance
Skill11k starsChanged yesterdayMITView on GitHub
Performance lens for Orleans — back-of-envelope cost estimates, bottleneck identification, batching, control/data plane separation, and GC-aware hot paths in messaging, serialization, scheduling, and per-activation state. Use during code review, and when designing or implementing performance-sensitive code.
We split this skill into the rules it gives an agent
2 rules. 0 are common, 2 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 6 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 16
Prefer design-level wins (batching, control/data plane separation, locality) to micro-optimizations.
- Distinctive: line 18
Keep correctness and simplicity intact.
“Common” is measured: kept by at least 6 in 10 of the 6 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Performance lens
Apply with root AGENTS.md, including its allocation and retained-memory
guidance. This lens examines resource cost: network, disk, memory, and CPU, each
by bandwidth and latency.
Procedure
- For performance-sensitive changes (hot paths, per-message or per-activation state, scale-dependent work), estimate the dominant costs at realistic counts of activations, messages per second, and silos.
- Identify the slowest resource on the path, weighted by frequency.
- Prefer design-level wins (batching, control/data plane separation, locality) to micro-optimizations.
- Support performance claims with comparable before-and-after measurements: BenchmarkDotNet projects under
test/Benchmarksfor local code paths, and load or integration measurements for distributed behavior. - Keep correctness and simplicity intact; a faster design that weakens an invariant is a regression.
Checklist
- Back-of-envelope at design time. The largest wins come from design, so new designs and scale-dependent changes start from an estimate of network, disk, memory, and CPU cost.
- Slowest resource first. Effort goes to the few bottleneck operations, identified by measurement and weighted by frequency.
- Tail latency. Fan-out and background contention are evaluated through end-to-end latency percentiles under representative load (The Tail at Scale).
- Bounded speculation. Retries and hedges share explicit attempt, concurrency, and time budgets with the original request; duplicate execution and work continuing after cancellation preserve the operation's contract.
- Batch. Per-operation overhead (storage writes, messages, directory operations) is amortized across batches where latency, ordering, and partial-failure semantics permit.
- Separate planes. Control-plane work (membership, directory, placement) stays out of per-message and per-turn paths, which use cached decisions with defined refresh.
- Run at your own pace. A component that receives external events processes them in batches at its own rate, rather than doing full work per event as it arrives, where latency permits.
- Simple algorithms for small N. Where N is small in practice (per-activation collections, silo counts), the simplest algorithm wins; scale-dependent N (activations, messages, subscriptions) justifies better complexity.
- GC-aware hot paths. On hot paths (messaging, serialization, scheduling), avoidable steady-state allocations are removed with pooled buffers, pre-sized collections,
Span<T>, and structs where measurement shows net benefit.
Findings
Report findings ordered by expected impact, each with the location, a cost estimate or measurement with its stated assumptions, and a concrete fix.
Trending
More talk lately.about the whole repository
Who's talking about dotnet/orleans
- Stack Overflow“Any good implementation of Actors for C#?”Stack Overflow · Jan 2, 2014 · 56 votes
- A Hacker News story“Orleans – Distributed Actor Model”Hacker News · Jan 26, 2015 · 36 points
- Stack Overflow“Any good implementation of Actors for C#?”Stack Overflow · Apr 11, 2014 · 25 votes
- Stack Overflow“Orleans slow with minimalistic use case”Stack Overflow · Nov 4, 2022 · 14 votes
- Stack Overflow“In Orleans when to use IGrainFactory vs IClusterClient”Stack Overflow · Feb 26, 2020 · 10 votes
The biggest 5 of 90 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 90
Talked about on GitHub, Stack Overflow, Hacker News and the web (90 times).
On GitHub · 50
- May 6, 2016Add public methods to supress visibility checks for compilation — dotnet/roslyn8 reactions · 15 comments
- Feb 13, 2024Orleans Broadcast Channels - Relationship between publisher and consumer is unclear — dotnet/docs7 reactions · 3 comments
- Oct 7, 2020Can more non-cryptographic hash algorithms be added into .NET BCL? — dotnet/runtime5 reactions · 21 comments
- May 19, 2019Microsoft.Azure.Storage.Common dependency — Azure/azure-cosmos-table-dotnet4 reactions · 6 comments
- Nov 29, 2024fix: target current LTS framework for `Microsoft.AspNetCore.Connections.Abstractions` — dotnet/aspnetcore3 reactions · 1 comment
45 more on GitHub
- Jul 3, 2024[Orleans] Update grain timer docs to account for new IGrainTimer APIs — dotnet/docs3 reactions · 2 comments
- Nov 7, 2022Perf-trap with `IBinaryInteger<T>.WriteLittleEndian` — dotnet/runtime3 reactions · 6 comments
- Nov 5, 2025Corrected Membership Session Handling — OrleansContrib/Orleans.Providers.MongoDB2 reactions · 2 comments
- May 23, 2025Proposal: Upstream MongoDB providers into dotnet/orleans — OrleansContrib/Orleans.Providers.MongoDB2 reactions · 8 comments
- Dec 19, 2023bugfix: using collection name as key for caching collections — OrleansContrib/Orleans.Providers.MongoDB2 reactions · 2 comments
- Jan 5, 2022.NET 7 Improvements — Dotnet-Boxed/Templates2 reactions
- Mar 8, 2020F# compiler warnings in .NET Core 3.1 — dotnet-websharper/core2 reactions · 5 comments
- Nov 7, 2019Clustering: support extended membership protocol — OrleansContrib/Orleans.Providers.MongoDB2 reactions · 4 comments
- Oct 29, 2026chore(deps): update orleans redis providers to 10.4.1 — thomhurst/Respire1 reaction · 3 comments
- Jul 8, 2026[API Proposal]: Amend `WritableMemoryStream` and `ReadOnlyMemoryStream` to derive from `Stream`, not `MemoryStream` — dotnet/runtime1 reaction · 6 comments
- Feb 9, 2026Bump Microsoft.Orleans.Persistence.AzureStorage from 10.0.0 to 10.0.1 — Gibbs-Morris/mississippi1 reaction · 1 comment
- Feb 9, 2026Bump Microsoft.Orleans.Clustering.AzureStorage from 10.0.0 to 10.0.1 — Gibbs-Morris/mississippi1 reaction · 1 comment
- Feb 9, 2026Bump Microsoft.Orleans.Client from 10.0.0 to 10.0.1 — Gibbs-Morris/mississippi1 reaction · 1 comment
- May 29, 2025[New article]: [Orleans] Add doc/details for Grain Migration — dotnet/docs1 reaction · 2 comments
- Jan 24, 2024Upgrade to Orleans 8 — VincentH-Net/Orleans.Multitenant1 reaction · 12 comments
- Aug 15, 2023Update the KubernetesClient NuGet package. — OrleansContrib/Orleans.Clustering.Kubernetes1 reaction
- Nov 30, 2022Fixed OrleansAdventure.sln broken link to github — dotnet/docs1 reaction
- Aug 17, 2022Fixed issue when EventFlowLogger throws on duplicate log message arguments — Azure/diagnostics-eventflow1 reaction
- Mar 28, 2017Evaluate sqlite as a replacement for BDB — zcash/zcash1 reaction · 7 comments
- Oct 15, 2026Bump Microsoft.Orleans.EventSourcing from 10.1.0 to 10.4.0 — devlooped/CloudActors0 reactions
- Oct 15, 2026Bump Microsoft.Orleans.CodeGenerator from 10.1.0 to 10.4.0 — devlooped/CloudActors0 reactions
- Oct 15, 2026Bump Microsoft.Orleans.Clustering.AzureStorage from 10.1.0 to 10.4.0 — devlooped/CloudActors0 reactions
- Oct 7, 2026Bump the dotnet group with 7 updates — IvanMarkitan/dotnet-docs0 reactions
- Sep 18, 2026Bump Microsoft.Orleans.Reminders and Microsoft.Orleans.Reminders.AzureStorage — en-gen/Wayfinder0 reactions · 1 comment
- Sep 18, 2026Bump Microsoft.Orleans.Reminders and Microsoft.Orleans.Sdk — en-gen/Wayfinder0 reactions
- Sep 16, 2026Bump the dotnet group with 6 updates — zbalkan/docs0 reactions
- Sep 16, 2026Bump the dotnet group with 5 updates — zbalkan/docs0 reactions
- Sep 16, 2026Bump the dotnet group with 7 updates — zbalkan/docs0 reactions
- Sep 16, 2026Bump the dotnet group with 7 updates — IvanMarkitan/dotnet-docs0 reactions
- Sep 16, 2026Bump the dotnet group with 6 updates — IvanMarkitan/dotnet-docs0 reactions
- Sep 16, 2026Bump the dotnet group with 4 updates — IvanMarkitan/dotnet-docs0 reactions
- Sep 9, 2026Bump the dotnet group with 10 updates — zbalkan/docs0 reactions
- Sep 9, 2026Bump the dotnet group with 7 updates — IvanMarkitan/dotnet-docs0 reactions
- Sep 9, 2026Bump Microsoft.Orleans.Sdk and Microsoft.Orleans.Server — IvanMarkitan/dotnet-docs0 reactions
- Jul 31, 2026Bump Microsoft.Orleans.Persistence.AzureStorage from 10.2.1 to 10.2.2 — en-gen/Wayfinder0 reactions
- Jul 31, 2026Bump Microsoft.Orleans.EventSourcing from 10.2.1 to 10.2.2 — en-gen/Wayfinder0 reactions
- Jul 31, 2026Bump Microsoft.Orleans.Clustering.AzureStorage from 10.2.1 to 10.2.2 — en-gen/Wayfinder0 reactions
- Jul 30, 2026Bump the orleans group with 4 updates — rick-dev-creator/Observa0 reactions
- Apr 29, 2026Bump Microsoft.Extensions.Hosting and 3 others — IEvangelist/docs0 reactions
- Apr 29, 2026Bump the dotnet group with 6 updates — IEvangelist/docs0 reactions
- Apr 22, 2026Bump Microsoft.Extensions.Hosting and 4 others — IEvangelist/docs0 reactions
- Apr 22, 2026Bump the dotnet group with 3 updates — IEvangelist/docs0 reactions
- Apr 22, 2026Bump Microsoft.Extensions.Hosting and 7 others — TimShererWithAquent/dotnet-docs0 reactions
- Apr 22, 2026Bump the dotnet group with 8 updates — TimShererWithAquent/dotnet-docs0 reactions
- Apr 20, 2026Bump Microsoft.Orleans.Core and Microsoft.Orleans.Core.Abstractions — mivertowski/Orleans.GpuBridge.Core0 reactions
On Stack Overflow · 30
- Jan 2, 2014Any good implementation of Actors for C#?56 votes
- Apr 11, 2014Any good implementation of Actors for C#?25 votes
- Nov 4, 2022Orleans slow with minimalistic use case14 votes
- Feb 26, 2020In Orleans when to use IGrainFactory vs IClusterClient10 votes
- Dec 12, 2015Orleans cluster communication7 votes
25 more on Stack Overflow
- Apr 6, 2016Using SQL Server as Orleans storage6 votes · 1 answer
- Jul 8, 2015MSR Orleans, How does PlacementStrategy work?5 votes
- Apr 6, 2016Using SQL Server as Orleans storage4 votes
- Jan 14, 2022How to configure TestClusterBuilder such that the test cluster has access to SMSProvider?3 votes
- Jul 22, 2021Is it possible to run Microsoft Orleans in classic ASP.NET MVC 43 votes
- May 20, 2019What is the Relaese date for Microsoft Orleans which can support service fabric?3 votes
- May 9, 2016How to make simple state presistance work in MS Orleans?3 votes
- Dec 16, 2015Getting exceptions when running basic orleans application3 votes
- May 22, 2017How can I start the server with the code configuration rather than the XML file configuration?2 votes
- Aug 8, 2021Orleans When Use RedisGrainStorage for "PubSubStore" throw GrainReferenceNotBoundException1 vote
- Mar 31, 2021Orleans Multi Region Deployments1 vote · 1 answer
- Dec 13, 2019How to properly inherit from tuples so that serializer generation from orleans is correct?1 vote
- Jan 19, 2019Asynchronous message passing in .NET1 vote
- Jan 11, 2019Understanding Elixir1 vote
- Jul 31, 2018microsoft orleans how to IServiceCollection replace to Castle Windsor1 vote
- Jun 2, 2016what could be reason for client silo not getting initialized in azure?1 vote
- Oct 5, 2015Saving state that resides in POCO/DTO using Actor Model1 vote
- Jul 26, 2024Orleans IPersistentState POCO Namespace Versioning problems0 votes
- Dec 22, 2019MSOrleans 2.0 Ado.net Persistent0 votes
- Mar 6, 2019Orleans - Custom TCP Socket Connection0 votes
- Nov 15, 2017Orleans - how to implement storage sharding by Tenant with AdoNetStorageProvider0 votes
- Oct 28, 2016"key was not present in the dictionary" when using generic orleans grains0 votes
- Jun 2, 2016Serializers for Orleans streams payload classes0 votes
- Mar 15, 2016Orleans Extension not installed0 votes
- Dec 12, 2015Orleans Error while Initializing Orleans Client0 votes
On Hacker News · 9
- Jan 26, 2015Orleans – Distributed Actor Model36 points · 19 comments
- Jun 23, 2016Orleans – Distributed Virtual Actor Model from Microsoft Research10 points · 1 comment
- Jan 23, 2015Microsoft Orleans – Distributed actor system open sourced – GitHub5 points
- Feb 22, 2017Orleans – Distributed Virtual Actor Model v1.44 points
- Jul 12, 2024Microsoft Orleans v8.2.02 points
4 more on Hacker News
- Nov 7, 2023Orleans v7.2.3 Released2 points
- Dec 5, 2019Orleans: Cross-platform framework for building distributed apps in .NET2 points · 1 comment
- Jul 7, 2017Microsoft Orleans v1.5.0 (Distributed Virtual Actor Framework for Dotnet)2 points
- Feb 18, 2015Microsoft Research New Orleans Framework2 points
On the web · 1
- Sep 17, 2018Distributed tracing and Orleans · Issue #4992 — google.com
Other versions7 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 7
- apache/pinot★ 6.2ksame name
- OpenAEV-Platform/openaev★ 1.8ksame name
- nesnilnehc/ai-cortex★ 8same name
- paultyng/skill-issue★ 8same name
- Marky-Team/marky-skills★ 5same name
- TerminatrX/agenticTrader★ 2same name
- MrCipherSmith/goodai-base★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository10 other files it gives its agents.
- AGENTS.mdAGENTS.md
- docs/AGENTS.mdAGENTS.md
- samples/AGENTS.mdAGENTS.md
- test/AGENTS.mdAGENTS.md
- .github/copilot-instructions.mdCopilot instructions
- code-reviewSkill
- review-architectureSkill
- review-code-craftSkill
- review-invariantsSkill
- review-testingSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

