Tyto.Transports.InMemory
0.0.1-alpha.94
dotnet add package Tyto.Transports.InMemory --version 0.0.1-alpha.94
NuGet\Install-Package Tyto.Transports.InMemory -Version 0.0.1-alpha.94
<PackageReference Include="Tyto.Transports.InMemory" Version="0.0.1-alpha.94" />
<PackageVersion Include="Tyto.Transports.InMemory" Version="0.0.1-alpha.94" />
<PackageReference Include="Tyto.Transports.InMemory" />
paket add Tyto.Transports.InMemory --version 0.0.1-alpha.94
#r "nuget: Tyto.Transports.InMemory, 0.0.1-alpha.94"
#:package Tyto.Transports.InMemory@0.0.1-alpha.94
#addin nuget:?package=Tyto.Transports.InMemory&version=0.0.1-alpha.94&prerelease
#tool nuget:?package=Tyto.Transports.InMemory&version=0.0.1-alpha.94&prerelease
Tyto.Transports.InMemory
In-process transport for Tyto. Messages are delivered through in-memory channels — no broker, no network. Ideal for tests, local development, and single-process apps that still want Tyto's messaging model (handlers, pipeline, retries, dead-lettering).
Not durable: messages live in memory and are lost on restart. For production across processes use the Postgres, RabbitMQ or Kafka transports.
Install
dotnet add package Tyto.Transports.InMemory
Usage
builder.AddTyto(tyto => {
tyto.MessageDefinitions(d => d.Add<PlaceOrder>("place-order", 1));
tyto.Transports(t => t.AddInMemory("memory", options => {
options.ChannelCapacity = 5_000; // bounded channel size (backpressure)
options.DefaultConcurrencyLimit = 2; // concurrent consumers per queue
options.MaxRetryCount = 3; // retries before dead-letter
options.RetryDelayMilliseconds = 1_000; // delay between retries
options.Bind("orders-exchange", "orders"); // fan-out binding (exchange -> queue)
}));
tyto.Endpoints(e => e.Add("orders-endpoint", ep => {
TransportEndpoint queue = new() { TransportName = "memory", Address = "orders" };
ep.ListenOn(queue);
ep.Routing.Send<PlaceOrder>().To(queue);
ep.AddHandlersFromAssembly(typeof(PlaceOrder).Assembly);
}));
});
- Commands are sent directly to a queue.
- Events are published fan-out to every queue bound to the exchange (
Bind); with no bindings the event is dropped.
Retries & dead-lettering
On a handler failure the message is re-enqueued with an incremented retry header until
MaxRetryCount is reached, then moved to the queue's DLQ. If you register
Tyto.DeadLettering, the final
failure is also captured in your dead-letter store:
tyto.AddInMemoryDeadLettering(out InMemoryDeadLetterStore dlq);
The dead-letter record captures the full failure context — reason, attempts, and the exception (type / message / stack).
Observability (OpenTelemetry)
Meter and ActivitySource are both named Tyto.Transports.InMemory.
tracing.AddSource("Tyto.Transports.InMemory");
metrics.AddMeter("Tyto.Transports.InMemory");
Counters: enqueued, completed, abandoned, deadlettered; histogram:
processing.duration. All logs are source-generated with deliberate levels.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.7)
- Microsoft.Extensions.Options (>= 10.0.7)
- Tyto.DependencyInjection (>= 0.0.1-alpha.94)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.0.1-alpha.94 | 47 | 7/21/2026 |
| 0.0.1-alpha.93 | 43 | 7/20/2026 |
| 0.0.1-alpha.92 | 47 | 7/20/2026 |
| 0.0.1-alpha.91 | 110 | 6/11/2026 |
| 0.0.1-alpha.90 | 86 | 6/4/2026 |
| 0.0.1-alpha.89 | 63 | 6/4/2026 |
| 0.0.1-alpha.88 | 67 | 5/17/2026 |
| 0.0.1-alpha.87 | 64 | 5/17/2026 |
| 0.0.1-alpha.86 | 64 | 5/16/2026 |
| 0.0.1-alpha.85 | 57 | 5/16/2026 |
| 0.0.1-alpha.84 | 63 | 5/16/2026 |
| 0.0.1-alpha.83 | 63 | 5/16/2026 |
| 0.0.1-alpha.82 | 67 | 5/4/2026 |
| 0.0.1-alpha.81 | 56 | 5/4/2026 |
| 0.0.1-alpha.80 | 54 | 5/4/2026 |
| 0.0.1-alpha.79 | 68 | 4/23/2026 |
| 0.0.1-alpha.78 | 71 | 4/23/2026 |
| 0.0.1-alpha.77 | 63 | 4/23/2026 |
| 0.0.1-alpha.76 | 62 | 4/23/2026 |
| 0.0.1-alpha.75 | 58 | 4/23/2026 |