Skip to content

Commit 78e3675

Browse files
committed
Rewrite Orleans skill around feature purpose
1 parent 9974501 commit 78e3675

11 files changed

Lines changed: 626 additions & 203 deletions

File tree

catalog/Frameworks/Orleans/agents/dotnet-orleans-specialist/AGENT.md

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: 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."
44
tools: Read, Edit, Glob, Grep, Bash
55
model: inherit
66
skills:
@@ -17,12 +17,12 @@ skills:
1717

1818
Act 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
5556
3. **Route to `orleans`** as the main implementation skill
5657
4. **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

Comments
 (0)