The job of the infrastructure is to provide technical capabilities for other parts of your application. While avoiding a discussion about Layers (4), it is still useful to maintain a Dependency Inversion Principle mentality. So wherever your infrastructure lives architecturally, it works out very well if its components depend on the interfaces from the user interface, Application Services, and domain model that require special technical capabilities. That way, when an Application Service looks up a Repository, it will be dependent only on the interface from the domain model, but using the implementation from the infrastructure. Figure 14.4 provides the UML static structure diagram to illustrate how that works.