Azure Service Bus: Messaging Patterns

Service Bus is Azure’s fully managed enterprise message broker. It supports Queues (point-to-point) and Topics/Subscriptions (pub/sub). Choosing the right pattern prevents architectural headaches. Queues vs Topics Dead-Letter Queue Messages that fail processing N times go to a special DLQ for inspection and replay. Key Takeaways Use **Sessions** for ordered processing (FIFO for a specific session […]

Read more โ†’

Event-Driven Architecture with Azure Event Grid

Azure Event Grid is the backbone of event-driven architectures on Azure. It’s a fully managed event routing service that uses a publish-subscribe model. Unlike messaging services (Service Bus, Event Hubs), Event Grid is optimized for reactive programming patterns where you want instant notifications of state changes. Event Grid Architecture Key Concepts Topics are endpoints where […]

Read more โ†’

Dapr: Distributed Application Runtime Introduction

Dapr (Distributed Application Runtime) simplifies cloud-native development by abstracting away the complexity of distributed systems. It provides “building blocks” like Service Invocation, State Management, and Pub/Sub via a sidecar architecture. This means your code (C#, Go, Node) talks to localhost via HTTP/gRPC, and Dapr handles the infrastructure. The Sidecar Pattern Building Block: Pub/Sub Publish a […]

Read more โ†’

Microservices Observability with OpenTelemetry

OpenTelemetry (OTel) is the merger of OpenTracing and OpenCensus. In 2020, it is becoming the CNCF standard for collecting metrics and traces. This guide shows how to instrument a .NET Core app to send traces to Jaeger. Setup Manual Instrumentation Key Takeaways Vendor-neutral instrumentation prevents lock-in. “Activity” in .NET 5+ is the native implementation of […]

Read more โ†’

Clean Architecture in .NET: Practical Implementation

Clean Architecture keeps your business logic independent of frameworks and databases. Here’s how I implement it in .NET projects. The Layers Domain: Entities, value objects, domain events Application: Use cases, interfaces, DTOs Infrastructure: Database, external services WebAPI: Controllers, middleware Project Structure Dependency Rule Dependencies point inward. Domain has no dependencies. Application depends on Domain. Infrastructure […]

Read more โ†’

Mediator Pattern in C#: Implementing with MediatR

MediatR implements the mediator pattern in .NET, decoupling request handling from the caller. It’s become my go-to for organizing application logic. Setup Request and Handler Using in Controller Benefits Decoupled handlers – easy to test Pipeline behaviors for cross-cutting concerns Clean controller actions References MediatR GitHub

Read more โ†’