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 Arbiter.Mediation Lightweight and extensible implementation of the Mediator pattern
Arbiter.Mediation.OpenTelemetry Arbiter.Mediation.OpenTelemetry OpenTelemetry support for Arbiter.Mediation library
Arbiter.CommandQuery Arbiter.CommandQuery Base package for Commands, Queries and Behaviors
Arbiter.CommandQuery.EntityFramework Arbiter.CommandQuery.EntityFramework Entity Framework Core handlers for the base Commands and Queries
Arbiter.CommandQuery.MongoDB Arbiter.CommandQuery.MongoDB Mongo DB handlers for the base Commands and Queries
Arbiter.CommandQuery.Endpoints Arbiter.CommandQuery.Endpoints Minimal API endpoints for base Commands and Queries
Arbiter.CommandQuery.Mvc Arbiter.CommandQuery.Mvc MVC Controllers for base Commands and Queries
Arbiter.Communication Arbiter.Communication Message template communication for email and SMS services
Arbiter.Communication.Azure Arbiter.Communication.Azure Communication implementation for Azure Communication Services
Arbiter.Communication.Twilio 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.