Designing Modular Monoliths in C# – A Proposal

My goal with this post is to propose a model for structuring .NET monoliths in a modular fashion that both keeps distribution complexity low whilst at the same time keeping options for distribution in the future, open!

An Exercise in Domain Modeling Guided By Strategic Domain Driven Design – Part 2

In this final part, I will review the current domain model, explore alternatives and make some model improvements keeping in mind the outcome of the design level event storm. Finally I will end with some DDD takeaways that should be applicable generally

An Exercise in Domain Modeling Guided By Strategic Domain Driven Design – Part 1

A practice in domain (re)modeling using my pet project, guided by strategic and tactical DDD patterns.

Some More Lessons Learned in Event Driven Architectures

In this post I present some finer grained lessons we’ve learned (a. k. a burn marks) since then having solved some foundational problems that surfaced due to not paying enough attention to the failure modes inherent in EDAs, upfront

Using C# Source Generators to Generate Data Transfer Objects (DTOs)

Using C# Source Generators to generate DTOs could potentially save a lot of developer time, so in this post I am going to attempt to write just such a generator.

Curious Case of Database Transaction Deadlocks Using TransactionScope

We built an event driven system in my team over 2 years ago that sometime back ran into database transaction deadlock problems which puzzled me enough to want to take a deeper look into what happened. This mini-post is a bit of documentation of that investigation.

Implementing Pipes & Filters Architectural Style With Azure WebJobs

…the whole business process can be divided into smaller asynchronous sub-processes with each one feeding i.e. “piping” its output into the input of the subsequent process(es). At each stage some processing is done for e.g. data enriching, filtering etc and this processing generically is termed as a “filter”.

Implementing Strangler Pattern using IIS & URL Rewriting for Legacy Systems Migration

Strangler pattern is a way of migrating from legacy applications to new ones with both being operational at the same time and the upgrade happening behind the scenes gradually.

Using DispatchProxy for Centralised Structured Logging in ASP.NET Core

The way logging and instrumentation in code has traditionally been done is something like the below, say, I want to profile my application service method called “PeriodCloseReportAsync()” that gets called … Continue reading Using DispatchProxy for Centralised Structured Logging in ASP.NET Core

Using Serverless Functions to Build a Microservices Architecture

Seeing as micro-service architectures are all the rage these days, I decided to dip into it by building…