Package usage patterns
Focused usage guidance for each package in src. Pick the page that matches the layer you are wiring up; the Getting Started guide shows how they fit together.
Domain
- Vulthil.Results –
Result<T>andErrorfor explicit success/failure flows without exceptions. - Vulthil.SharedKernel – entity, aggregate root, and domain event primitives.
Application
- Vulthil.SharedKernel.Application – commands, queries, handlers, FluentValidation integration, and pipeline behaviors.
Infrastructure
- Vulthil.SharedKernel.Infrastructure –
BaseDbContext, generic repository, and outbox composition entry point. - Vulthil.SharedKernel.Infrastructure.Relational – relational outbox strategy and
MigrateAsyncfor EF Core providers. - Vulthil.SharedKernel.Infrastructure.Npgsql –
UseNpgsqlprovider wiring with PostgreSQL-tuned outbox. - Vulthil.SharedKernel.Infrastructure.MySql –
UseMySqlprovider wiring with MySQL-tuned outbox. - Vulthil.SharedKernel.Infrastructure.Cosmos –
UseCosmosDbprovider wiring with Cosmos-specific outbox.
API
- Vulthil.SharedKernel.Api – minimal API endpoint conventions and
Result→ HTTP mapping.
Messaging
- Vulthil.Messaging.Abstractions – transport-agnostic consumer and publisher contracts.
- Vulthil.Messaging – queue/consumer registration and hosted processing.
- Vulthil.Messaging.RabbitMq – RabbitMQ transport implementation.
Testing
- Vulthil.xUnit – reusable xUnit base classes and auto-mocking.
- Vulthil.Messaging.TestHarness – in-memory messaging test harness.
- Vulthil.Extensions.Testing – shared assertion and setup helpers.