Koto.Application
0.1.0-preview.5
dotnet add package Koto.Application --version 0.1.0-preview.5
NuGet\Install-Package Koto.Application -Version 0.1.0-preview.5
<PackageReference Include="Koto.Application" Version="0.1.0-preview.5" />
<PackageVersion Include="Koto.Application" Version="0.1.0-preview.5" />
<PackageReference Include="Koto.Application" />
paket add Koto.Application --version 0.1.0-preview.5
#r "nuget: Koto.Application, 0.1.0-preview.5"
#:package Koto.Application@0.1.0-preview.5
#addin nuget:?package=Koto.Application&version=0.1.0-preview.5&prerelease
#tool nuget:?package=Koto.Application&version=0.1.0-preview.5&prerelease
Koto.Application
CQRS dispatcher, pipeline behaviors, and cross-service integration abstractions for .NET microservices. Part of the Koto suite.
Install
dotnet add package Koto.Application
What's included
| Type | Purpose |
|---|---|
ICommand / ICommand<TResult> |
Marker interfaces for write operations |
IQuery<TResult> |
Marker interface for read operations |
ICommandHandler<T> / ICommandHandler<T, TResult> |
Command handler contracts |
IQueryHandler<TQuery, TResult> |
Query handler contract |
ICqrsDispatcher |
Dispatches commands and queries to registered handlers |
IPipelineBehavior<TRequest, TResponse> |
Middleware for the CQRS pipeline |
LoggingBehavior<,> |
Logs every command/query with timing |
TransactionBehavior<,> |
Wraps each command in a IUnitOfWork transaction |
IUnitOfWork |
Abstraction for committing a database transaction |
IIntegrationEvent / IntegrationEvent |
External event contract |
IIntegrationCommand / IIntegrationCommand<TResult> |
Cross-service command contract |
IIntegrationEventPublisher |
Publishes integration events (implemented in infra) |
IIntegrationCommandDispatcher |
Dispatches integration commands (implemented in infra) |
Usage
Register
builder.Services.AddKotoApplication(typeof(Program).Assembly);
Implement a command
public sealed record PlaceOrderCommand(Guid CustomerId, List<OrderItem> Items)
: ICommand<Result<OrderId>>;
public sealed class PlaceOrderHandler : ICommandHandler<PlaceOrderCommand, Result<OrderId>>
{
public async Task<Result<OrderId>> Handle(PlaceOrderCommand cmd, CancellationToken ct)
{
// business logic
}
}
Dispatch
var result = await _dispatcher.SendAsync(new PlaceOrderCommand(customerId, items), ct);
Pipeline behaviors
// Register in DI — executed in registration order
services.AddScoped(typeof(IPipelineBehavior<,>), typeof(LoggingBehavior<,>));
services.AddScoped(typeof(IPipelineBehavior<,>), typeof(ValidationBehavior<,>)); // from Koto.Validation
services.AddScoped(typeof(IPipelineBehavior<,>), typeof(TransactionBehavior<,>));
Design notes
IDomainEvent— internal; free to change; never crosses service boundaries.IIntegrationEvent— external contract; versioned; published to Kafka via Wolverine.IIntegrationCommand— fire-and-forget command to another service;IIntegrationCommand<TResult>expects a reply.
| 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
- Koto.Domain (>= 0.1.0-preview.5)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.7)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.7)
NuGet packages (5)
Showing the top 5 NuGet packages that depend on Koto.Application:
| Package | Downloads |
|---|---|
|
Koto.Validation
FluentValidation v7 extensions for Koto: MustBeValueObject, MustBeEntity, ListMustContainNumberOfItems, and ValidationBehavior pipeline integration. |
|
|
Koto.Messaging.Wolverine
Wolverine-based implementation of Koto messaging abstractions: integration event publishing, command dispatching, Kafka consumers with idempotency, correlation propagation, and DLQ routing. |
|
|
Koto.Infrastructure.EFCore
EF Core 10 integration for Koto DDD: generic repository, strongly-typed ID converters, specification pattern, and Wolverine outbox wiring. |
|
|
Koto.Api.FastEndpoints
FastEndpoints integration for Koto: CQRS base endpoints, RFC 7807 Problem Details from Error, correlation ID middleware, and global exception handler. |
|
|
Koto.Testing
DDD-specific test helpers for Koto: fluent aggregate assertions, in-memory fake repositories, fake integration event publisher, and Result<T> AwesomeAssertions extensions. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-preview.5 | 38 | 5/13/2026 |
| 0.1.0-preview.4 | 37 | 5/13/2026 |
| 0.1.0-preview.3 | 38 | 5/13/2026 |
| 0.1.0-preview.2 | 47 | 5/11/2026 |