Skip to content

Sponsor: Do you build complex software systems? See how NServiceBus makes it easier to design, build, and manage software systems that use message queues to achieve loose coupling. Get started for free.

Learn more about Software Architecture & Design.
Join thousands of developers getting weekly updates to increase your understanding of software architecture and design concepts.


Follow @CodeOpinion

Software Design

ORMs can lead to FAT domain models. Slim them down!

ORMs and how you persist data can significantly impact your design and lead to fat domain models. Data is critical, but how you capture that data can lead you down a path where you need to realize the compromise you’re making. I will show an example of how not all data is created equal. YouTube Check out my YouTube channel, where I post all kinds of content accompanying my posts, including this video showing everything in this post. What do you care about? When you’re thinking about a domain and modeling it, what do you care about? Most often, developers focus on… Read More »ORMs can lead to FAT domain models. Slim them down!

Want to build a good API? Here are 5 Tips for API Design.

Want to build better APIs that can evolve over time as your system requires changes? Over time, your API is going to change. It just will evolve, and you don’t want to handcuff yourself. Here are five tips that will help you change your API design over time without creating breaking changes. YouTube Check out my YouTube channel, where I post all kinds of content accompanying my posts, including this video showing everything in this post. Generating Identifiers Where do you generate identifiers? When I say identifier (aka ID), most would be thinking about a database and primary key. It’s typical to… Read More »Want to build a good API? Here are 5 Tips for API Design.

Domain Modeling Gone Wrong to Right

So, you are applying domain-driven design and want to define aggregates. Let’s go over ways to define them with an example domain, and you might be surprised by the outcome. Domain modeling is about capturing domain concepts not just as data and relationships but exposing behaviors. YouTube Check out my YouTube channel, where I post all kinds of content accompanying my posts, including this video showing everything in this post. Preface This is a continuation of Part 1, where I reviewed a common domain modeling approach, which I disagreed with and explained why. The TLDR is you cannot start domain modeling by… Read More »Domain Modeling Gone Wrong to Right