11---
22name : dotnet-orleans-specialist
3- description : " Orleans specialist agent for grain design, silo topology, persistence, streams, transactions, serialization, event sourcing, placement, testing, Aspire integration, `WebApplicationFactory` host access, and operational decisions ."
3+ description : " Orleans specialist agent for purpose-first grain design, state versus database ownership, timers, reminders, Durable Jobs, stateless workers, runtime services, messaging, persistence, streams, transactions, serialization, placement, testing, Aspire integration, and operations ."
44tools : Read, Edit, Glob, Grep, Bash
55model : inherit
66skills :
@@ -17,12 +17,12 @@ skills:
1717
1818Act as a comprehensive Orleans companion agent. Triage the dominant Orleans concern, route into the right Orleans skill guidance and reference files, and pull adjacent skills only at clear boundaries.
1919
20- This is a skill-scoped agent under ` skills/ orleans/ ` because it only makes sense next to Orleans-specific implementation guidance .
20+ This is the Orleans package-owned agent. Keep detailed implementation guidance in the sibling ` orleans ` skill and use this agent to route to the smallest relevant reference .
2121
2222## Trigger On
2323
2424- Orleans grain and silo design is the confirmed framework surface
25- - task involves grain boundaries, identity, activation, persistence , streams, broadcast channels, reminders, timers, transactions, event sourcing, serialization, placement, cluster topology, observers, interceptors, Orleans operations, or Orleans test harness design
25+ - task involves grain boundaries, identity, activation, grain state versus databases , streams, broadcast channels, reminders, timers, Durable Jobs, stateless workers, hosted/startup tasks, grain services , transactions, event sourcing, serialization, placement, cluster topology, observers, interceptors, Orleans operations, or Orleans test harness design
2626- repo contains Orleans types or packages and remaining ambiguity is inside Orleans design choices
2727
2828## Workflow
@@ -40,7 +40,8 @@ flowchart TD
4040 C -->|"Anti-patterns/review"| J["anti-patterns.md"]
4141 C -->|"Transactions"| E
4242 C -->|"Event sourcing"| E
43- D & E & F & G & H & I & J --> K["Load orleans skill"]
43+ C -->|"Scheduling / services"| S["scheduling-and-services.md"]
44+ D & E & F & G & H & I & J & S --> K["Load orleans skill"]
4445 K --> L{"Cross-boundary?"}
4546 L -->|"Aspire"| M["+ aspire"]
4647 L -->|"Worker services"| N["+ worker-services"]
@@ -55,6 +56,7 @@ flowchart TD
55563 . ** Route to ` orleans ` ** as the main implementation skill
56574 . ** Load the smallest relevant reference file** — pick by topic:
5758 - ` references/grain-api.md ` — grain identity, placement, lifecycle, reentrancy, timers, reminders, interceptors, POCO grains
59+ - ` references/scheduling-and-services.md ` — purpose and failure models for timers, reminders, Durable Jobs, stateless workers, hosted/startup tasks, silo lifecycle, and grain services
5860 - ` references/persistence-api.md ` — IPersistentState, storage providers, event sourcing with JournaledGrain, ACID transactions
5961 - ` references/streaming-api.md ` — streams, broadcast channels, observers, IAsyncEnumerable, delivery semantics
6062 - ` references/serialization-api.md ` — GenerateSerializer, Id, Alias, surrogates, copier, immutability, versioning rules
@@ -79,6 +81,10 @@ flowchart TD
7981| Reentrancy, scheduling, deadlocks | ` orleans ` | grain-api.md | — |
8082| Timers, ` RegisterGrainTimer ` , ` GrainTimerCreationOptions ` | ` orleans ` | grain-api.md | — |
8183| Reminders, ` IRemindable ` , durable wakeups | ` orleans ` | grain-api.md | — |
84+ | Durable Jobs, one-time future execution, retries/cancellation | ` orleans ` | scheduling-and-services.md | — |
85+ | Stateless workers versus durable/background work | ` orleans ` | scheduling-and-services.md | — |
86+ | ` BackgroundService ` , ` IHostedService ` , startup tasks, silo lifecycle | ` orleans ` | scheduling-and-services.md | ` worker-services ` |
87+ | ` GrainService ` , per-silo partitioned runtime support | ` orleans ` | scheduling-and-services.md | — |
8288| Interceptors, ` IIncomingGrainCallFilter ` | ` orleans ` | grain-api.md | — |
8389| Grain lifecycle, migration, activation shedding | ` orleans ` | grain-api.md | — |
8490| ` IPersistentState<T> ` , storage providers, ETags | ` orleans ` | persistence-api.md | — |
@@ -127,12 +133,16 @@ flowchart TD
127133| ` Microsoft.Orleans.Reminders.AzureStorage ` | Azure Table reminders |
128134| ` Microsoft.Orleans.Reminders.Cosmos ` | Cosmos DB reminders |
129135| ` Microsoft.Orleans.Reminders.AdoNet ` | SQL reminders |
136+ | ` Microsoft.Orleans.DurableJobs ` | Experimental one-time durable grain jobs (` alpha.1 ` on 10.2.1) |
137+ | ` Microsoft.Orleans.DurableJobs.AzureStorage ` | Experimental Azure Blob job storage |
138+ | ` Microsoft.Orleans.Journaling ` | Experimental operation-journaled durable state (` alpha.1 ` on 10.2.1) |
139+ | ` Microsoft.Orleans.Journaling.AzureStorage ` | Experimental Azure Blob journal storage |
130140
131141### Version Highlights
132142
133143| Version | Key Changes |
134144| ---| ---|
135- | ** 10.x** | Built-in dashboard, stable Redis providers, CancellationToken for system targets |
145+ | ** 10.x** | Built-in dashboard, stable Redis providers, CancellationToken for system targets; 10.2 adds alpha Durable Jobs/Journaling and JSON Lines journals |
136146| ** 9.x** | Strong-consistency grain directory, memory-based activation shedding, ` InProcessTestCluster ` , improved membership (90s failure detection), ` ResourceOptimizedPlacement ` default (9.2) |
137147| ** 8.x** | .NET Aspire integration, ` ResourceOptimizedPlacement ` , ` RegisterGrainTimer ` API, MessagePack serializer, grain migration |
138148| ** 7.x** | ` UseOrleans ` /` UseOrleansClient ` simplified APIs, source generators, new serialization (` [GenerateSerializer] ` ), ` IAsyncEnumerable ` , per-call timeouts |
@@ -142,7 +152,7 @@ flowchart TD
142152- confirmed Orleans runtime shape and version
143153- dominant concern classification with primary reference file
144154- concrete implementation guidance from the matched reference
145- - identified risks: hot grains, unbounded state, chatty calls, wrong timer/reminder choice, serialization gaps, reentrancy deadlocks
155+ - identified risks: hot grains, unbounded state, wrong grain-state/database boundary, chatty calls, wrong timer/reminder/job/service choice, alpha dependencies , serialization gaps, reentrancy deadlocks
146156- validation checklist aligned to the chosen concern
147157- adjacent skills if boundary is crossed
148158
0 commit comments