September 16, 2026dotnetpostgresqlcdcchange-data-captureaspiremessagingnpgsqloutbox-pattern
How change data capture works in PostgreSQL: the WAL, logical decoding, replication slots and publications. Build a working CDC consumer in .NET with Npgsql and Aspire, and see when CDC beats the Outbox pattern.
Read more →
September 2, 2026dotnetcsharpsolidarchitecturedependency-inversionports-and-adapters
Your solution is full of interfaces and you still can't swap anything. The Dependency Inversion Principle isn't about having abstractions — it's about who owns them. Ports, adapters, and the compile-time test that settles the argument in .NET.
Read more →
August 5, 2026dotnetcsharpsolidnugetextension-methodsarchitecture
How the Open/Closed Principle actually plays out when you own a NuGet package, why extension methods are .NET's cheapest OCP tool, and what C# 14 extension members in .NET 10 change for library authors.
Read more →
July 30, 2026.NETArchitectureTestingNetArchTestClean ArchitectureAI Agents
Why architecture tests matter more now that agents write code: enforce Clean Architecture layers and module isolation with NetArchTest, xUnit and .NET 10, and turn the rule into a gate an agent must pass.
Read more →
July 27, 2026.NETTestcontainersIntegration TestingPostgreSQLGitHub ActionsASP.NET Core
Build .NET integration tests that provision PostgreSQL with Testcontainers, configure WebApplicationFactory, apply EF Core migrations, and run unchanged on a workstation or GitHub Actions.
Read more →
July 22, 2026dotnetnatsmessagingmicroservicesnugetopen-sourcerabbitmqkafka
How the NATS message broker works in .NET: subjects and wildcard subscriptions, queue groups for load balancing, how NATS compares to RabbitMQ and Kafka, and validating every incoming message in one line with MessageValidation.NatsNet.
Read more →
July 17, 2026.NETNative AOTPerformanceContainersPodman
Native AOT can reduce startup time and memory usage for focused .NET services, but only when the application and its dependencies are compatible with ahead-of-time compilation.
Read more →
July 9, 2026.NETHttpClientConnection PoolingIHttpClientFactorySocketsHttpHandlerDNSNetworking
Socket exhaustion and stale DNS are the two classic HttpClient bugs. Learn the right lifetime strategy — long-lived clients with PooledConnectionLifetime, or IHttpClientFactory — and how to combine both.
Read more →
June 12, 2026.NETHttpClientResiliencePollyHedgingTail LatencyMicroservices
When sequential retries are too slow, hedging races requests in parallel to cut tail latency. Learn the Standard Hedging Handler and how to build your own resilience pipeline with AddResilienceHandler.
Read more →
June 2, 2026.NETHttpClientResiliencePollyCircuit BreakerRetryMicroservices
Stop hand-rolling retry loops. Learn how the Standard Resilience Handler in Microsoft.Extensions.Http.Resilience gives your HttpClient production-grade retries, timeouts, and circuit breakers with one line of code.
Read more →