Documentation / Reference

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.