Recent Posts

Revisiting Essential Elements of the Ports and Adapters Architecture Style

I will attempt to define each element of the style a bit and also show some C# code examples to illustrate the points

How We Reorganised Engineering Teams at Coolblue for Better Ownership and Business Alignment

In this post, I will share my experiences leveraging Domain Driven Design strategies and Team Topologies to reorganise two product engineering teams in the Purchasing domain at Coolblue (one of the largest e-commerce companies in the Netherlands).

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.

Monolith vs Microservices

TLDR; don’t get hung up on deciding which camp you belong to but focus on evolving the architecture along contextual and capability boundaries over time. Decomposing and composing back up is a cycle, its futile to argue whether its best to be on the crest or the trough…

Systems Thinking and Technical Debt

In this post I will try to use simplified Systems Thinking modelling language to put technical debt in the larger organisational context with the hope that it will make some sense to everyone.

On Software Architecture Decisions, Evolution and Engineering

Deliberate and thoughtful architectural decisions that solve real business problems and mitigate enough of the real risks, is the RIGHT and the MIDDLE PATH way to go.

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.

Converting an ASP.NET Core MVC App to Blazor SPA – Part 3 (Authentication + Wrap up)

The central idea around Blazor auth is for the UI system to be able to query the authentication state of the user and render different views. Blazor uses AuthenticationStateProvider to query this auth state via the AuthorizeView component.

Converting an ASP.NET Core MVC App to Blazor SPA – Part 2 (The Frontend)

Given the fact that there is no shortage of SPA frameworks and libraries like Angular, React, Vue, Knockout ad inifitum, for building the new frontend app for my app, I decided to go with Blazor.