Event Sourcing Fundamentals: Storing Events Instead of State

Event Sourcing flips traditional database design on its head. Instead of storing current state, you store the events that led to that state. It’s not for every project, but when it fits, it’s powerful. The Concept In a typical system, you update records in place. An order goes from “pending” to “shipped” by updating a […]

Read more →

Repository Pattern in .NET Core: Implementation Guide

The Repository pattern is one of those patterns that generates debate. Some say it’s essential, others call it unnecessary abstraction over EF Core. Here’s my pragmatic take on when and how to use it. What is the Repository Pattern? A repository abstracts data access, providing a collection-like interface to your domain objects. Instead of calling […]

Read more →

CQRS Pattern Explained: Separating Reads from Writes

CQRS—Command Query Responsibility Segregation—sounds intimidating, but the core idea is simple. Separate your read operations from your write operations. Here’s why you’d want to do that and how to get started. The Problem In traditional CRUD applications, the same model handles both reads and writes. This works fine until: Your read queries need different data […]

Read more →

Introduction to Event-Driven Architecture

I’ve spent the last year migrating systems from request-response to event-driven patterns. The shift in thinking is significant, but the benefits are real. Here’s my introduction to event-driven architecture (EDA) and why you should care. What is Event-Driven Architecture? Instead of services directly calling each other (request-response), they communicate through events. When something happens, a […]

Read more →

Azure Cosmos DB – TTL (Time to Live) – Reference Usecase

TTL capability within Azure Cosmos DB is a live saver, as it would take necessary steps to purge redudent data based on the configurations you may.  Let us think in terms of an Industrial IoT scenario, devices can produce vast amounts of telemetry information, logs and user session information that is only useful until we […]

Read more →