All my posts (MDX/Markdown).
Jun 24, 2026
A real war-room story about duplicated deposits in production — why a check-then-insert idempotency guard isn't enough under concurrency, and how flipping it to insert-first-then-check-with-a-row-lock fixed it for good.
#idempotency#concurrency#race-condition#postgres#csharp#payments#production
Feb 19, 2026
A deep dive into the Mediator design pattern, how it works in practice, when it makes sense, and why I built my own lightweight implementation after MediatR went paid.
#csharp#dotnet#mediator#design-patterns#architecture#dependency-injection
Feb 18, 2026
A deep dive into multi-tenancy architecture patterns, data segregation strategies, and the real-world complexity that emerges when tenants grow apart in requirements, scale, and compliance needs.
#architecture#multi-tenancy#saas#database#software-design
Jan 19, 2026
Final chapter of the FK investigation: how bad are CASCADE deletes really? Real benchmarks bust the '20× slower' myth and reveal why soft delete wins (33× faster).
#database#performance#postgresql#architecture#benchmarking
Jan 19, 2026
Continuing the FK investigation: do Foreign Keys slow down SELECT queries? Are JOINs faster without them? Real benchmarks reveal surprising truths—FKs have ~0% impact on reads.
#database#performance#postgresql#architecture#benchmarking
Jan 19, 2026
A real-world journey questioning database dogma. When I found our transactions table without FKs, I built benchmarks to understand why. The results: 0.16% to 32.7% overhead depending on workload.
#database#performance#postgresql#architecture#benchmarking
Jan 10, 2026
A practical, production-oriented approach to building a resilient RabbitMQ-based solution, using exchanges, DLQ/TTL, and a generic producer/consumer framework designed to reduce operational risk and long-term maintenance cost.
#rabbitmq#messaging#dlq#csharp#production#architecture