Packages and compatibility
Troolio targets .NET 10 and Microsoft Orleans 10. The framework and optional samples-repository extensions have separate version lines.
On this page
Framework packages
Keep these framework packages together at 10.0.8 when installing more than one:
| Package | Use |
|---|---|
| Troolio.Core | Actor, command, event, state, store, orchestration and projection contracts |
| Troolio.Agents | Agent definition and run actors |
| Troolio.SqlServer | SQL Server selected-route, transaction, projection and effect adapters |
| Troolio.KurrentDB | KurrentDB selected-route, queue and recovery adapters |
| Troolio.KurrentDB.SqlServer | SQL coordination for KurrentDB broker, journal, admission and projections |
dotnet add package Troolio.Core --version 10.0.8
Install only what your application needs. A package reference resolves dependencies; the host must still select its route and configure compatible services.
Optional extensions
These packages are 10.0.2 and depend on public Core 10.0.8:
| Package | Use | Guide |
|---|---|---|
| Troolio.Projection.EntityFramework | EF Core 10 relational read-model writes | EF projections |
| Troolio.Projection.Redis | Redis hashes, partitions and bounded change-feed queries | Redis projections |
| Troolio.Stores.EventStore | Ordinary IStore persistence using modern KurrentDB/EventStore gRPC |
Ordinary gRPC storage |
| Troolio.Stores.Marten | Ordinary IStore persistence through PostgreSQL and Marten |
Marten storage |
# Add an EF projection and, optionally, durable ordinary event storage.
dotnet add package Troolio.Projection.EntityFramework --version 10.0.2
dotnet add package Troolio.Stores.EventStore --version 10.0.2
The EventStore and Marten extensions implement ordinary actor storage. They are not substitutes for the framework's selected atomic-route contracts. EF and Redis are read-side integrations; selecting either does not establish a durable event-to-projection outbox or a global transaction. Configure those contracts explicitly when the application requires them.
Choose a runnable example
| Starting point | What it adds |
|---|---|
| Calculator | Commands, events and a single actor query |
| ToDo API | HTTP, business retries, SQLite read models and durable event-store choices |
| Shopping List | Collaboration, orchestration, authorized catalog queries and tracing |
| Workshop walkthrough | A deeper original domain model and advanced serving patterns |
These applications are source examples, not additional NuGet packages. Clone Fifty3North/troolio to run Calculator, ToDo and Shopping List; their package versions are checked in and they restore from NuGet.org.
Message serialization
Assemblies declaring actor interfaces, messages, states or transport models reference the Orleans SDK explicitly:
<PackageReference Include="Troolio.Core" Version="10.0.8" />
<PackageReference Include="Microsoft.Orleans.Sdk" Version="10.0.0" PrivateAssets="all" />
[GenerateSerializer]
public record AddItem(Metadata Headers,
[property: Id(0)] Guid ItemId,
[property: Id(1)] string Description) : Command<IShoppingListActor>(Headers);
Keep member IDs stable as a message evolves. Check provider compatibility separately from the framework version; see hosting, serialization and each extension guide.