Skip to content

mehyaa/Convey

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Convey

A lightweight, modular toolkit for rapidly building production-ready .NET (Core) microservices.

Documentation & Demo

Read the full docs at mehyaa.github.io/Convey or watch a short demo on YouTube.

You can also find detailed documentation in the docs/ directory.

Key Features

Convey provides building blocks so you can focus on your domain instead of wiring infrastructure:

  • Authentication: JWT with secret key & certificate support (+ mTLS helpers)
  • CQRS: Simple abstractions for commands, queries & events
  • Service Discovery: Consul integration
  • API Documentation: Swagger / OpenAPI extensions
  • HTTP Clients: RestEase integration
  • Load Balancing: Fabio support
  • Logging: Extensions for Serilog + sinks (Seq / ELK / Loki)
  • Messaging: Broker abstractions, CQRS over messages & RabbitMQ integration
  • Reliability: Inbox + Outbox pattern (EF Core / MongoDB implementations)
  • Metrics: AppMetrics & Prometheus integration
  • Persistence: Extensions for MongoDB, Redis, OpenStack OCS
  • Secrets: Vault (KV, dynamic credentials, PKI, etc.)
  • Security: Certificates, mTLS helpers, encryption utilities
  • Tracing: Jaeger (incl. RabbitMQ propagation)
  • Web API: Minimal routing-based API, CQRS endpoint helpers

Core Libraries

Foundation

Authentication & Security

CQRS (Command Query Responsibility Segregation)

Message Brokers

Persistence

Service Discovery & Load Balancing

HTTP & API

Observability

Configuration & Secrets

Quick Start

dotnet new webapi -n SampleService
cd SampleService
dotnet add package Convey
dotnet add package Convey.WebApi
dotnet add package Convey.CQRS.Commands
dotnet add package Convey.MessageBrokers.RabbitMQ
var builder = WebApplication.CreateBuilder(args);

builder.Services.AddConvey()
	.AddWebApi()
	.AddCommandHandlers()
	.AddInMemoryCommandDispatcher()
	.AddRabbitMq();

var app = builder.Build();
app.UseRouting();
app.UseEndpoints(endpoints => endpoints.Get("/", ctx => ctx.Response.WriteAsync("OK")));
app.Run();

More examples are available under the samples/ directory and the docs site Getting Started guide.

Sample Applications

Explore the samples/ directory for full services demonstrating composition patterns:

  • Conveyor.Services.Orders – Order management
  • Conveyor.Services.Deliveries – Delivery tracking
  • Conveyor.Services.Pricing – Pricing calculations

Contributing

Issues & PRs are welcome. Please follow conventional commit style and keep changes focused.

License

MIT License - see the LICENSE file for details.

Support

Created by devmentors.io. Maintained by mehyaa.

About

A simple recipe for .NET Core microservices.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • C# 97.4%
  • Shell 2.6%