Services Everywhere

Software architecture is only as service-oriented as its most monolithic component.

Data Model vs. Domain Model

ORM is a good servant but a bad master. The object-relational impedance mismatch is still there and as dangerous as ever.

Rethinking API Versioning with Domain-Driven Design

How to manage breaking changes elegantly and get rid of version IDs for good by being nice to your clients.

Good and Bad Monolith

It is unfortunate that monolith has become a dirty word. In fact, a physical monolith is typically the right thing to do. Pure evil is monolithic thinking.

What Is a Repository

Which purpose has a Repository? To which layer does it belong to? And how to implement it correctly?

Domain Collections

Collection, List and Set are terms very familiar to developers but hardly used by business experts. Therefore, they should not be part of the domain (API).

Events vs. Commands in DDD

There are situations where events and commands seem to be a good solution for a problem. Where to use events and where are commands the best fit?

Object-Oriented Design vs. Persistence

From time to time I attend discussions about OOP. Every time someone comes up with the argument of dealing with persistence. The typical question can be reduced to “should an object persist itself or rather be persisted?” I believe the question is fundamentally wrong.

Domain-Driven Serverless Design

One reason I really like the serverless architecture approach is being pretty selfish: one has to care only about what matters - the code.