Architecture Decision Records (ADRs): Documenting the Why

Why did we choose Cosmos DB over SQL? Why did we use gRPC here? Six months from now, nobody will remember. That’s why you need ADRs. An ADR is a short markdown file stored in the repo that captures an architectural decision. Structure Title: “Use Cosmos DB for Session Store” Status: Accepted / Deprecated Context: […]

Read more โ†’

Azure Service Bus: Messaging Patterns

Azure Service Bus is the enterprise messaging backbone. Beyond simple queues, it offers powerful patterns. Topic Filters (Pub/Sub) Instead of creating a queue for every variation, create one Topic. Subscribers can filter what they receive using SQL filters. Dead Letter Handling Always handle your Dead Letter Queue (DLQ). Messages go there after max delivery attempts. […]

Read more โ†’

Designing for Nullability in C#

Nullable Reference Types (NRT) are enabled by default in .NET 6 templates. It’s time to stop fighting the warnings and embrace the design philosophy. The Golden Rule “Design your types to be initialized fully on construction.” Most NRT warnings come from models that are partially initialized or set via property injection later. If a property […]

Read more โ†’

.NET 6: Minimal APIs Explained

Minimal APIs are the biggest shift in ASP.NET Core since version 1.0. They remove the MVC ceremony (Controllers, Actions, Filters) in favor of a fluent lambda-based syntax. The Code Is it just for tiny apps? No. Performance is technically better than MVC (fewer allocations, no Filter Pipeline overhead). However, organization becomes the challenge. You don’t […]

Read more โ†’

Dependency Injection in .NET: Service Lifetimes

Choosing the right lifetime for your services is critical for app correctness and memory usage. Transient Created every time it is requested. Lightweight, stateless services. Scoped Created once per HTTP request. Ideal for DB contexts, user session data. Don’t inject Scoped into Singleton! Singleton Created once per application lifetime. Examples: Caching services, configuration. MUST be […]

Read more โ†’

React Server Components: The Future of React?

In a surprising end-of-year announcement, the React team unveiled React Server Components (RSC). It’s an experimental feature (zero-bundle-size components) that might redefine how we build React apps. The Idea Traditionally, React components (Client Components) are downloaded, parsed, and executed in the browser. They fetch data via API calls (useEffect). Server Components execute only on the […]

Read more โ†’