As we discussed in Chapter 1, Why Domain-Driven Design, the software we design and implement has only one primary purpose - to solve a domain problem. Understanding of the problem space or the business domain is crucial for the journey to find proper solutions and satisfy users of the systems we make. When we get more understanding about the domain using techniques like big-picture EventStorming, discussed in the previous chapter, we need to go a bit deeper and try visualizing our knowledge using visual artifacts that other people would understand and will be able to reason about. In short, we need a model.