Is DDD suited for all kinds of application?

In short,

If it's just CRUD, I wouldn't bother.

On the other hand,

If it's got behavior, where the next state of something relies on the previous state, then DDD is something you probably want to consider.


DDD is not all-or-nothing. Also, many of the patterns described in DDD are not new and can be found all over the place. Eric Evans (the author of the DDD book) just assembled them, formalized them where needed, and set them in relation to each other. You are free to use what fits to your problem space.

What is often overlooked: DDD describes implementation patterns as well as analysis patterns. The analysis patterns may be overkill in many (if not most) applications, but the implementation patterns (i.e. Entities, Specifications, Services) can be of great use in less complex scenarios as well.