Architectural Hoisting

Architectural hoisting is a design technique where the responsibility for an intentional design constraint (that is, a guiderail) is moved away from developer vigilance into code, with the goal of achieving a global property on the system.

The best place to start reading is with the IEEE Software article from 2014, followed by the video.