Understanding the Different Domains in Software Solutions
This chapter is dedicated to a modern software development technique called domain-driven design (DDD), which was first proposed by Eric Evans. While DDD has existed for more than 15 years, it has achieved great success in the last few years because of its ability to cope with two important problems.
The first problem is modeling complex systems. No single expert has in-depth knowledge of the whole domain; this knowledge is instead split among several people. As we will see, DDD copes with this problem by splitting the whole CI/CD cycle into independent parts, assigned to different teams. This way each team can focus on a specific domain of knowledge by interacting only with the experts of that domain.
The second problem DDD copes with well is big projects with several development teams. There are many reasons why a project is split among several teams, the most common being the team's size and all of its members...