Skip to content

Vulthil/Vulthil.SharedKernel

Repository files navigation

Vulthil.SharedKernel

Vulthil.SharedKernel

Opinionated .NET building blocks for domain-driven design, CQRS, messaging, and testing.

Build and Test Release Coverage

Documentation · Articles · Report a Bug · Request a Feature


Overview

Vulthil.SharedKernel is a modular collection of NuGet packages that provide reusable foundations for building maintainable .NET applications. Each package is focused on a single concern — from result primitives and domain abstractions to messaging and test infrastructure — so you can adopt only what you need.

Packages

Adopt only what you need — every package is independently versioned and focused on a single concern.

Core

Package NuGet Description
Vulthil.Results NuGet Result primitives for explicit success/failure flows without exceptions.
Vulthil.SharedKernel NuGet Domain primitives — aggregate roots, entities, domain events, and domain exceptions.

Application & API

Package NuGet Description
Vulthil.SharedKernel.Application NuGet CQRS handlers, pipeline behaviors, and FluentValidation integration.
Vulthil.SharedKernel.Api NuGet Minimal-API endpoint helpers and Result-to-HTTP conversion.

Persistence & Outbox

Package NuGet Description
Vulthil.SharedKernel.Outbox NuGet Transactional domain-event outbox engine; persistence-agnostic.
Vulthil.SharedKernel.Outbox.EntityFrameworkCore NuGet EF Core implementation of the domain-event outbox.
Vulthil.SharedKernel.Infrastructure NuGet EF Core persistence, transactions, and outbox wiring.
Vulthil.SharedKernel.Infrastructure.Relational NuGet Shared relational helpers for the provider packages.
Vulthil.SharedKernel.Infrastructure.Npgsql NuGet PostgreSQL/Npgsql EF Core mappings and optimizations.
Vulthil.SharedKernel.Infrastructure.MySql NuGet MySQL EF Core mappings and optimizations.
Vulthil.SharedKernel.Infrastructure.Cosmos NuGet Azure Cosmos DB EF Core mappings and optimizations.

Messaging

Package NuGet Description
Vulthil.Messaging.Abstractions NuGet Contracts for producers, consumers, and request/reply boundaries.
Vulthil.Messaging NuGet Composition APIs for consumers, queues, and hosted processing.
Vulthil.Messaging.RabbitMq NuGet RabbitMQ transport for the messaging abstractions.
Vulthil.Messaging.Outbox NuGet Transactional bus-publish outbox that eliminates the dual-write problem.
Vulthil.Messaging.Inbox NuGet Idempotent-receiver (inbox) consume filter for exactly-once processing.
Vulthil.Messaging.Inbox.EntityFrameworkCore NuGet Shared EF Core primitives for the inbox idempotency store.
Vulthil.Messaging.Inbox.Relational NuGet Relational EF Core idempotency store (transactional exactly-once).
Vulthil.Messaging.Inbox.Cosmos NuGet Azure Cosmos DB idempotency store (effectively-once).
Vulthil.Messaging.TestHarness NuGet In-memory harness for asserting messaging flows in tests.

Hosting & Testing

Package NuGet Description
Vulthil.Extensions.Hosting NuGet Hosting abstractions, including IRestartableHostedService.
Vulthil.Extensions.Testing NuGet Testing helpers such as polling utilities for eventual consistency.
Vulthil.xUnit NuGet xUnit base classes with Testcontainers, Respawn, and AutoMocker.
Vulthil.xUnit.Cosmos NuGet Cosmos DB emulator fixture for xUnit integration tests.

Documentation

Full documentation is available on the documentation site, with conceptual guides and usage patterns in the docs/articles folder and a complete API reference.

Contributing

Contributions are welcome. Please read the Contributing Guide to get started before opening an issue or pull request.

License

This project is licensed under the MIT License.

About

.NET packages for developing CQRS, DDD, and Messaging Applications. Contains a TestingFramework aswell

Topics

Resources

License

Contributing

Security policy

Stars

1 star

Watchers

1 watching

Forks

Packages

 
 
 

Contributors