Sunday, May 31, 2026
Logging and Structured Diagnostics in .NET 8 with Serilog and PostgreSQL Sink
When something breaks in production at 2 AM, plain-text log lines like "Error processing order" are nearly useless. You cannot f...
Sunday, May 31, 2026
Read article →
More posts
Sunday, May 24, 2026
When something breaks in production at 2 AM, plain-text log lines like "Error processing order" are nearly useless. You cannot f...
Sunday, May 31, 2026
Caching is the cheapest performance win in most APIs and one of the easiest to get subtly wrong. The hard part is rarely storing a value; ...
Some work has no business running inside an HTTP request. Sending a welcome email, resizing an upload, generating a report, or cleaning up...
Authentication tells you who is calling. Authorization decides what they are allowed to do, and getting it wrong is one of the most common...
Almost every real-world API eventually needs to answer one question on every request: who is calling, and are they allowed to? JWT (JSON W...
Connection pooling is more critical with PostgreSQL than it is with SQL Server, and the reason is architectural. Each PostgreSQL client co...
Sunday, May 24, 2026
Most .NET developers let EF Core generate their PostgreSQL indexes and then wonder why certain queries are slow in production. The default...
Subscribe to:
Posts (Atom)