Convey Documentation
Convey is a modular toolkit for building resilient, observable .NET microservices. Each package is optional and focused; compose only what you need.
For a guided walkthrough see:
GettingStarted.md
Overview
Convey packages follow these principles:
- Focused responsibilities per module
- Convention over configuration (override when needed)
- Framework transparency (you retain control of ASP.NET Core pipeline)
- Production readiness (observability, security, resiliency helpers)
Core Libraries
Foundation
- Convey - Core framework and dependency injection container
- Convey.WebApi - Web API extensions and minimal routing
- Convey.WebApi.CQRS - CQRS integration for Web API
Authentication & Security
- Convey.Auth - JWT authentication with secret keys and certificates
- Convey.Auth.Distributed - Distributed authentication patterns
- Convey.Security - Security extensions, certificates, mTLS, encryption
- Convey.WebApi.Security - Web API security extensions
CQRS (Command Query Responsibility Segregation)
- Convey.CQRS.Commands - Command handling abstractions
- Convey.CQRS.Events - Event handling abstractions
- Convey.CQRS.Queries - Query handling abstractions
Message Brokers
- Convey.MessageBrokers - Message broker abstractions
- Convey.MessageBrokers.CQRS - CQRS support for message brokers
- Convey.MessageBrokers.RabbitMQ - RabbitMQ integration
- Convey.MessageBrokers.Outbox - Outbox pattern implementation
- Convey.MessageBrokers.Outbox.EntityFramework - EF Core outbox implementation
- Convey.MessageBrokers.Outbox.Mongo - MongoDB outbox implementation
Persistence
- Convey.Persistence.MongoDB - MongoDB extensions and patterns
- Convey.Persistence.Redis - Redis extensions and caching
- Convey.Persistence.OpenStack.OCS - OpenStack OCS support
Service Discovery & Load Balancing
- Convey.Discovery.Consul - Consul service registry integration
- Convey.LoadBalancing.Fabio - Fabio load balancer integration
HTTP & API
- Convey.HTTP - HTTP client extensions
- Convey.HTTP.RestEase - RestEase integration for typed HTTP clients
- Convey.Docs.Swagger - Swagger/OpenAPI documentation
- Convey.WebApi.Swagger - Swagger integration for Web API
Observability
- Convey.Logging - Logging extensions with Serilog integration
- Convey.Logging.CQRS - CQRS logging integration
- Convey.Metrics.AppMetrics - AppMetrics integration
- Convey.Metrics.Prometheus - Prometheus metrics integration
- Convey.Tracing.Jaeger - Jaeger distributed tracing
- Convey.Tracing.Jaeger.RabbitMQ - Jaeger tracing for RabbitMQ
Configuration & Secrets
- Convey.Secrets.Vault - HashiCorp Vault integration for secrets management
Getting Started (TL;DR)
dotnet add package Convey
dotnet add package Convey.WebApi
dotnet add package Convey.CQRS.Commands
dotnet add package Convey.MessageBrokers.RabbitMQ
builder.Services.AddConvey()
.AddWebApi()
.AddCommandHandlers()
.AddInMemoryCommandDispatcher() // or use RabbitMQ
.AddRabbitMq();
See GettingStarted.md for a full walkthrough including CQRS, MongoDB & RabbitMQ setup.
Sample Applications
Explore the samples/ directory for full services demonstrating composition patterns:
Conveyor.Services.Orders– Order managementConveyor.Services.Deliveries– Delivery trackingConveyor.Services.Pricing– Pricing calculations
Contributing
Maintained by devmentors.io. Contributions are welcome—open an issue first for larger changes. Please keep docs concise & consistent with the style guide.
License
See the root LICENSE file.
Need terminology or formatting guidance? See STYLEGUIDE.md.