.NET Production Reliability
.NET production, stabilized
Minimal APIs, OpenTelemetry, idempotency keys, correlation IDs, thread pool diagnostics, and legacy .NET rescue — production patterns that stop timeouts, stuck jobs, and silent failures.
What you will find here
Production .NET patterns extracted from real incidents: OpenTelemetry tracing, structured logging with Serilog, idempotency keys for APIs, correlation IDs across services, thread pool diagnostics, and legacy .NET rescue techniques. Every article includes code you can adopt incrementally — no full rewrites required.
Who this is for: .NET engineers maintaining production services, migrating legacy frameworks, or building new APIs with minimal APIs, MediatR, and Azure.
Production checklists
Free diagnostic checklists and incident runbooks for .NET production
Code kits
- OpenTelemetry tracing starter kit (.NET)A minimal tracing checklist and attribute map for debugging production incidents in .NET services.
- Idempotency key contract template (.NET)A key format, storage checklist, and replay rules to prevent duplicate side effects in .NET APIs.
- Axiom Module - Retry Policy KitA paid retry policy kit with stop/retry/escalate rules, backoff + jitter defaults, retry budgets/caps, and 429 Retry-After handling templates (Polly + HttpClient) to prevent retry storms.
- Polly Retry Policies packageA small shipped kit for safe Polly retries: C# client wrapper, retry checklist, retry logging schema, and setup notes.
- Timeout matrix template (HTTP / SQL / jobs)A practical worksheet to set request/job budgets, allocate per-dependency timeouts, and define stop rules and logging fields.
Tools
Interactive tools for .NET production engineering
Latest articles
.NET production patterns and troubleshooting guides

C# 8 Default Interface Methods & Static Fields: Which Version? Complete Guide with Examples
Which C# version introduced default interface methods and static fields? C# 8.0. Complete reference covering static methods, fields, access modifiers, sealed/virtual members, CLR support, and production use cases with code examples.

Performance triage in legacy .NET: find the top 3 bottlenecks fast
When the legacy system is slow and no one knows where to start, a structured triage finds the real bottlenecks in hours, not weeks. This playbook gives you a repeatable method to identify, rank, and fix the top 3 performance killers.

Outbox pattern: reliable writes + events without the enterprise baggage
When a database write succeeds but the event never arrives, your system is lying to downstream consumers. The outbox pattern fixes this without a distributed transaction or a message broker rewrite.

Structured logging that actually helps: Serilog fields that matter in .NET incidents
When logs are noisy but useless: why incidents stay unsolved, which fields actually explain failures, and the minimal schema that makes .NET outages diagnosable.

OpenTelemetry for .NET: minimum viable tracing for production debugging
When incidents span multiple services and logs cannot explain latency: the smallest OpenTelemetry setup that makes production debugging possible without a full rewrite.

Idempotency keys for APIs: stop duplicate orders, emails, and writes
When retries create duplicate side effects, idempotency keys are the only safe fix. This playbook shows how to design keys, store results, and prove duplicates cannot recur.

HttpClient keeps getting 429s: why retries amplify rate limiting in .NET
When retries multiply 429 errors instead of fixing them: how retry amplification happens, how to prove it, and how to honor Retry-After with budgets.

Polly Retry Policies Done Right: Backoff, Jitter, Caps & Stop Rules (.NET 8)
When retries amplify failures instead of fixing them: how retry storms happen in .NET, how to prove it, and the four components that stop cascading failures.

Cannot trace requests across services: why correlation IDs die at boundaries in .NET
A production playbook for when logs exist but cannot be joined—correlation IDs die at HttpClient boundaries, jobs, and queues, making incidents unreproducible.
GitHub
View all reposNewsletter
Get .NET production reliability updates: new patterns, tools, and resources.