From Closed Internal Stack to Open-Source Ecosystem: I Finally Shipped Three Years of .NET Infrastructure The article describes RedBase, an open-source .NET ecosystem developed over three years to eliminate repetitive infrastructure work in .NET projects. It replaces traditional data layers, integrations, authentication, and runtime plumbing with four integrated pillars: a schema-less object storage engine (redb), a routing and integration framework (redb-route), a production runtime container (redb-tsak), and an OAuth/OIDC identity server (redb.Identity). The author reports that one business workflow requiring approximately 3,000 hours using traditional methods took only about 128 hours with RedBase, attributing the efficiency gain to the elimination of "seams" between system layers. This is a submission for the GitHub Finish-Up-A-Thon Challenge Why this exists the actual pain Before the architecture talk, the why . Three years ago I watched my team — and every other .NET team I knew — burn most of their hours not on business logic but on plumbing the same four layers over and over: - EF Core + migrations. DbContext , fluent mappings, navigation properties, N+1 puzzles, lazy/eager loading, a migration per field, separate read/write models if you go CQRS. On a non-trivial object graph that's hundreds of hours just for the data layer, before any business logic is written. - A pile of integration connectors. Kafka here, RabbitMQ there, S3 for files, SFTP for the legacy partner, an HTTP webhook for the new one, each one hand-rolled with its own retry policy, dead-letter, idempotency, serialization, health check, telemetry. Ten integrations × 40-80 hours each. - Auth. OAuth flows, refresh tokens, scope checking, claims transformation, multi-tenant, M2M, DPoP if you want to be modern — built from IdentityServer / Auth0 / Keycloak plus 200-600 hours of glue per serious deployment. - Runtime. Hot-reload without dropping in-flight messages, graceful drain on redeploy, cluster coordination, leader election, watchdog, dashboard — usually missing entirely on .NET, or assembled from 5-7 unrelated NuGets that don't share conventions. The worst part isn't any single layer — it's the seams between them . Where the auth user becomes the EF entity becomes the Kafka message becomes the S3 blob, every seam is one more serialization, one more mapping, one more versioning headache, one more place a 3 AM page comes from. RedBase is built so that business code is the only thing left to write . The class IS the schema no EF, no migrations . The 22 transports share one DSL no per-connector plumbing . Identity is a direct-vm:// Route calling authis calling a function, not a network round-trip . Tsak gives you hot-reload, cluster, dashboard, drain out of the box. The seams collapse because everything lives on the same fabric. On the one full business workflow where I had honest before/after numbers — built the traditional way vs built on the RedBase stack — the human effort was roughly ~3,000 hours vs ~128 hours . That ratio isn't magic on any single layer where each subsystem gives 3-5× at most ; it comes from the seams no longer existing. When I asked Claude Opus 4.7 to sanity-check that estimate against typical .NET project breakdowns data layer + integrations + auth + runtime + inter-seam testing , the order of magnitude held up. One stack, one team, one architectural style — so the team gets to write features instead of wiring infrastructure. That is the project. Everything below is just how I got there. What I Built RedBase — a four-pillar open-source ecosystem for .NET that grew up inside one production system over three years and finally got shipped to the world this spring. Three pillars are now public on GitHub under Apache 2.0, and the fourth is in pre-release polish: 1. redb — typed object storage engine. Your C class IS the schema. Two physical tables objects + values , full LINQ, zeromigrations, recursive-CTE tree queries, bulk COPY BINARY saves on PostgreSQL and SqlBulkCopy on SQL Server. Freecore + Pro tier with tree-diff ChangeTracking saves. 2. redb-route — Apache Camel for .NET. Fluent C DSL for From → Process → To pipelines, 22 transport packages Kafka, RabbitMQ, MQTT, S3, gRPC, SFTP, AMQP, Azure Service Bus, IBM MQ, Elasticsearch, Redis, LDAP, FTP, HTTP, WebSocket, SignalR, Firebase, TCP, Mail, SQL, Quartz, generic File , 80+ EIP patterns Splitter, Aggregator, CBR, Circuit Breaker, Saga, ... , compiled expression engine, transactional routes, OpenTelemetry built-in. 3. redb-tsak — the .NET analogue of Apache Karaf / Camel K. Production runtime container: drop a .tpkg bundle ZIP with manifest.json + entry-point DLLs + dependency DLLs +per-module JSON config — or just a bare .dll for thesimplest cases — into Libs/ , get hot-reload withoutdropping in-flight messages, REST + Blazor dashboard, watchdog, Quartz scheduler, three deployment modes Standalone / Single-node+redb / Cluster with leader election & auto-rebalance , per-module AssemblyLoadContext isolation, API Key + HMAC-SHA256security, 30-command CLI, typed C client. 415+ tests. 4. redb.Identity pre-release, repo opening soon — OAuth 2.1 / OIDC server, architecturally transport-agnostic: every endpoint is a direct-vm:// Route. That gives two ready usage modes today: a in-process — call the auth server directly from another module in the same run-time with zero network hop, zero serialization, zero HTTP stack this is what direct-vm:// is , and b HTTP — a full OAuth 2.1 / OIDC HTTP facade is shipped and working. The other RPC-capable facades — gRPC, RabbitMQ RPC, AMQP request/reply, IBM MQ request/reply, WebSocket, SignalR, TCP — are on the roadmap and become near-trivial to add because the core logic is already wire-format independent. The fire-and-forget transports in the Route set — Kafka producer, File, S3, Mail, etc. — don't fit an auth server, so they're correctly out of scope. OpenIddict under the hood, REDB-backed storage, DPoP / PAR / Dynamic Client Registration / SCIM 2.0 / FIDO2 / WebAuthn / RFC 8417 shared-signals support. 1751+ tests passing before public release. Total scope: ~385k LOC 326k C + 58k SQL across ~2200 source files, Apache 2.0 , NuGet-published, all docs at redbase.app/why-redbase https://redbase.app/why-redbase . Demo Live docs and positioning: - redbase.app/why-redbase https://redbase.app/why-redbase — full "Sound familiar?" pain-point walkthrough with side-by-side Traditional-vs-RedBase code examples - The docs site itself is powered by RedBase — every page, example, and API reference is a REDB object in MSSQL. We eat our own cooking. Published article series on dev.to author page https://dev.to/rinat kozin d0a2ef43e7824 — the ecosystem is too large for one post, so I'm publishing a deep-dive series, one pillar at a time: - May 13 — We built an enterprise integration stack for .NET from scratch: EAV + DSL + runtime https://dev.to/rinat kozin d0a2ef43e7824/we-built-an-enterprise-integration-stack-for-net-from-scratch-eav-dsl-runtime-2l16 — overview of the whole stack - May 14 — I spent a year building Apache Camel for .NET. Here's the honest state of it. https://dev.to/rinat kozin d0a2ef43e7824/i-spent-a-year-building-apache-camel-for-net-heres-the-honest-state-of-it-150e — discussion piece, what's done / what isn't - May 17 — redb.Route — Apache Camel for .NET: 22 transports, 30+ EIP patterns, compiled DSL https://dev.to/rinat kozin d0a2ef43e7824/redbroute-apache-camel-for-net-22-transports-30-eip-patterns-compiled-dsl-11m0 — integration framework deep dive - May 21 — An EF Core alternative for .NET apps with complex object graphs — full LINQ, no migrations, no DbContext https://dev.to/rinat kozin d0a2ef43e7824/two-tables-zero-migrations-full-linq-a-net-data-engine-thats-been-running-our-production-for-2482 — REDB storage engine deep dive this is the one that already triggered the multi-version-deploy thread referenced below …and the series continues. Tsak runtime container, hot-reload, cluster, watchdog gets its own post next, then Identity transport-agnostic OAuth 2.1 / OIDC when the repo opens, then a deep dive on the tree-diff ChangeTracking path, then a multi-DB benchmark post. A stack this size is a genuinely hard engineering problem to explain — trying to cram it into one article would lie about the depth. So I'm taking it one layer at a time. The 30-second flavor: // 1. Define schema — no migration needed RedbScheme "order" public class OrderProps { public Customer Customer { get; set; } public Address ShippingAddress { get; set; } public List