finds.dev← search

// the find

AlphaYu/adnc

★ 1,475 · C# · MIT · updated Apr 2026

A pragmatic .NET 8 framework for modular monoliths to evolve seamlessly into distributed microservices.

ADNC is a .NET 8 framework-plus-reference-implementation for teams building modular monoliths that may eventually need to split into microservices. It wires together Ocelot, Consul, CAP, Redis, EF Core, SkyWalking, and a handful of other standard components behind consistent abstractions, and ships a working five-service demo domain so you can see how all of it fits. Aimed at teams who want the distributed systems plumbing decided upfront without committing to the operational cost of microservices from day one.

The demo deliberately shows three different service shapes side-by-side (classic layered, compact single-project, DDD with domain layer), which is genuinely useful for teams arguing about project structure. Central Package Management and shared Directory.Build.props mean dependency versions stay consistent across dozens of projects without manual coordination. The CAP outbox pattern is wired in correctly — events go through the DB transaction, not a fire-and-forget publish, which is the right call for distributed consistency. Architecture Decision Records are present and reference real trade-offs (ADR-003 explicitly rejects distributed transaction coordinators), which is rarer than it should be in framework repos.

The infrastructure dependency footprint is heavy — Consul, Redis, RabbitMQ, MySQL, and a logging stack are all required before the demo runs at all, which makes local dev painful and the Docker Compose setup a pre-requisite rather than optional. The 'modular monolith first' promise is partially undercut by the fact that the demo is already split into five separately deployed services; there is no single-process modular monolith entry point to start from before breaking things apart. AutoMapper is still present throughout, which is a long-standing complaint in the .NET community for good reasons (hidden runtime failures, reflection overhead, debugging friction). Test coverage is thin — the test directory exists but there is minimal evidence of serious unit or integration test investment for the infrastructure packages themselves.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →