← WorkOpen-source .NET infrastructure

AstraFlow

I built AstraFlow because I wanted common .NET infrastructure to stay easy to use without becoming invisible when something goes wrong.

My roleAuthor · Maintainer
Stack / surfaceMediator · Mapper · Analyzers · Generators · Diagnostics · CLI
RepositoryGitHub ↗
AF
MEDIATORMAPPERDIAGNOSTICSANALYZERSGENERATORSCLI
// explicit infrastructure
services.AddAstraFlow();

var dto = mapper.Map<OrderDto>(order);
In one line

AstraFlow is an MIT-licensed .NET package family for request dispatch, mapping and the diagnostics/tooling around those flows.

01

Why another toolkit?

Mediator and mapping libraries save time, but convenience can turn into hidden behavior. I wanted a small API on the outside and an execution path I can still trace, test and explain under pressure.

02

The package family

The repository now includes mediator dispatch, explicit mapping, optional conventions, EF integration, diagnostics, test helpers, Roslyn analyzers, source generators, CLI tooling, ASP.NET Core integration and validation adapters. Packages stay narrow so consumers can take only what they need.

AF
MEDIATORMAPPERDIAGNOSTICSANALYZERSGENERATORSCLI
// explicit infrastructure
services.AddAstraFlow();

var dto = mapper.Map<OrderDto>(order);
03

Explicit by design

Mappings can be audited. Startup errors are meant to tell you what is wrong. Core packages do not require a web framework. Diagnostics and analyzers exist because good feedback is part of the developer experience, not a cleanup task.

04

Performance without marketing theatre

There is a committed BenchmarkDotNet project, but I do not turn that into ‘fastest’ claims. If performance matters, I want the setup, baseline and result to be repeatable enough that somebody else can challenge it.

AF
MEDIATORMAPPERDIAGNOSTICSANALYZERSGENERATORSCLI
// explicit infrastructure
services.AddAstraFlow();

var dto = mapper.Map<OrderDto>(order);
05

What open source changes

A public package has no private team context to fall back on. Names, error messages, docs, compatibility and upgrade behavior have to make sense to someone who has never spoken to me.

Keep going

Back to all work

Work index ↗