![[Showoff Saturday] Dragonfire - A suite of .NET libraries for distributed systems (Outbox, Inbox, Caching, Sagas, and more)](https://external-preview.redd.it/l_SQUJT0r0iChymu-cCh-T6VE9HF0hEjGFASWly4LAk.png?width=1080&crop=smart&auto=webp&s=593b5e4a37bf8b5b768c4bcb1e28f8e68aff7d00)
[Showoff Saturday] Dragonfire - A suite of .NET libraries for distributed systems (Outbox, Inbox, Caching, Sagas, and more)
Hey r/dotnet,
I'm a tech lead and I've seen some spectacular failures with distributed systems over the years. You know the ones - dual-write problems, missed webhooks, events disappearing into the void, cache stampedes taking down prod at 3am.
So in my free time I built Dragonfire - a suite of focused, production-ready .NET 8 libraries that solve these problems without forcing you to stand up Kafka, RabbitMQ, or Redis (unless you want to).
The highlights:
Dragonfire.Outbox - Transactional outbox pattern that solves the dual-write problem. Writes outbox rows in the same DB transaction as your domain data, background processor handles delivery with HMAC signing and retries. Achieved 1000 RPS message delivery on a single laptop.
Dragonfire.Inbox - Transactional inbox for receiving webhooks. Deduplicates by provider event ID, at-least-once delivery with exponential retry + dead-letter queue.
Dragonfire.Saga - Crash-safe workflows with compensation. Survives process restarts.
Dragonfire.Caching - Read-through with tag-based invalidation, stampede protection. Memory/Redis/Hybrid providers.
Dragonfire.ApiClientGen - CLI tool that generates typed HttpClient from Postman collections. No more magic strings.
Dragonfire.TraceKit - Distributed tracing helpers.
Dragonfire.WebhookPlatform - Complete webhook platform.
Plus logging, feature flags, tenant context, polling framework, scheduled syncs...
Why I built this:
Every package is independent - pull only what you need. No magic, everything is reachable through public API. Cross-cutting concerns (tenant, logging) automatically integrate across libraries.
The outbox is my personal favorite - I've seen teams try to implement this themselves and get subtle race conditions wrong. This one is battle-tested.
Links:
- GitHub: https://github.com/outboxnet/Dragonfire
- License: MIT - free for anything
Would love feedback, issues, PRs, or just to hear if this solves real problems for you. What's the worst distributed system failure you've seen?
P.S. Sorry for using AI help for the post. English is not my first language.