Too Long; Didn't Read
Domain Driven Design(DDD) is an alternative for our previous approach in three-layer design. DDD wants to change the focus of the programing from storing and retrieving information to a layer called Domain. The Domain layer often comes into play for the Create, Update and Delete operations (which change the state of the system) and usually does not provide any special added value in the Read and querying data. This attitude has its costs and benefits in software development and is not going to magically solve all our problems.