The Direction of Dependencies
Dependencies have a direction. So, what is the correct direction? Let's consider this with the following diagram:
Figure 16.5: The direction of dependencies
The dependencies should follow a direction of movement from what is more likely to change, toward what is less likely to change; hence, abstraction should not depend on details. The domain should be the pure part of our code, ideally with no dependencies to anything else, since it's the least likely to change.
If you think about it, this makes sense; the business logic should be self-containing and should work correctly without caring if the information is saved on this or that database, displayed on the web, or in a CSV file. Changing a webpage to display information in an alternative way should be possible without changing the domain, and it happens way more often than modifications of the domain itself.
Outside-In naturally follows the same direction of dependencies...