Arbiter Project
Arbiter is a comprehensive .NET library suite that provides robust implementations of the Mediator pattern and Command Query Responsibility Segregation (CQRS) patterns. Designed for modern .NET applications, Arbiter enables clean, maintainable, and scalable architectures including Vertical Slice Architecture.
Overview
Arbiter consists of multiple focused libraries that work together to provide a complete solution for building modular applications:
Core Libraries
- Mediation: Lightweight mediator implementation for decoupled request/response handling
- Command Query: CQRS framework with pre-built commands, queries, and behaviors
- Communication: Message template system for email and SMS services
Key Features
- High Performance: Optimized for minimal allocations and maximum throughput
- Extensible: Pipeline behaviors and customizable handlers
- Architecture Support: Perfect for Clean Architecture, Vertical Slice, and CQRS patterns
- Observability: Built-in OpenTelemetry support for tracing and metrics
- Type Safe: Strong typing throughout with comprehensive generic support
- Multi-Database: Support for Entity Framework Core, MongoDB, and more
Quick Start
Get started with Arbiter in minutes:
dotnet add package Arbiter.Mediation
dotnet add package Arbiter.CommandQuery
Documentation Structure
This documentation is organized into two main sections to help you get the most out of Arbiter:
User Guide
The User Guide provides comprehensive tutorials, examples, and best practices:
- Quick Start - Get up and running in minutes
- Patterns - Architectural patterns and design principles
- Mediation - Core mediator functionality and usage
- Command Query - CQRS implementation and patterns
- Mapping - Data transformation strategies
- Queries - Query patterns, filtering, and caching
- Commands - Command operations for data manipulation
- Handlers - Database-specific handler implementations
- Behaviors - Cross-cutting concerns and pipeline behaviors
- Communication - Message templates and delivery services
API Reference
The API Reference contains detailed documentation for all types, methods, and interfaces in the Arbiter libraries. Use this section when you need specific implementation details or are exploring the full capabilities of the framework.
Package Library Matrix
Library | Package | Description |
---|---|---|
Arbiter.Mediation | Lightweight and extensible implementation of the Mediator pattern | |
Arbiter.Mediation.OpenTelemetry | OpenTelemetry support for Arbiter.Mediation library | |
Arbiter.CommandQuery | Base package for Commands, Queries and Behaviors | |
Arbiter.CommandQuery.EntityFramework | Entity Framework Core handlers for the base Commands and Queries | |
Arbiter.CommandQuery.MongoDB | Mongo DB handlers for the base Commands and Queries | |
Arbiter.CommandQuery.Endpoints | Minimal API endpoints for base Commands and Queries | |
Arbiter.CommandQuery.Mvc | MVC Controllers for base Commands and Queries | |
Arbiter.Communication | Message template communication for email and SMS services | |
Arbiter.Communication.Azure | Communication implementation for Azure Communication Services | |
Arbiter.Communication.Twilio | Communication implementation for SendGrid and Twilio |
Next Steps
Ready to get started? Check out the Quick Start Guide to build your first Arbiter application, or explore the User Guide for comprehensive tutorials and examples.
For detailed API information, browse the API Reference section.