Summary
In this chapter, we explored a design concept that aims to reduce complexity at the topmost level making your node definitions cleaner. Breaking up module application into multiple layers forces your Puppeteers to compartmentalize their definitions. If all the contributors to your code base keep this in mind, collisions will be kept to a minimum. Exceptions can be handled with host-level hiera definitions. In the next chapter, we will look at how to diagnose inevitable problems with catalog compilation and execution.