Thursday, August 21, 2025

The Two Faces of DDD: Strategy vs. Tactics

In today's post, I will explain what Domain-Driven Design (DDD) is, what groups of patterns it includes, how they differ, and how they can help improve your application's quality. 


What is it?

Domain-Driven Design is a collection of patterns that help you align your software more closely with the business it is intended to support. These patterns focus on reflecting domain knowledge - including its language, rules, and constraints - directly within your application. By doing so, they simplify and enhance collaboration with domain experts and stakeholders.

Wednesday, August 13, 2025

Understanding the Problem and Solution Spaces

Last time, we briefly explored various types of boundaries that should be considered when making architectural decisions for your application. Today, I want to share insights about the Problem and Solution Spaces.

This understanding will support you in defining more effective boundaries — both at the level of services and within the code itself.

Tuesday, August 5, 2025

The Secret Geometry Behind Your Architecture

In software architecture, we often talk about boundaries — and for good reason. Boundaries provide valuable insight into various aspects of our systems: cohesion, dependencies, complexity, and more.

Today, I want to walk you through several types of boundaries that should be considered when designing software architecture. Broadly speaking, they fall into two categories:

  • Knowledge-specific: These are shaped by business knowledge, requirements, and policies.

  • Technical: These are defined by technical constraints and non-functional requirements.