Dependency inversion expresses dependencies between high-level and low-level infrastructure resources through abstractions. The abstraction translates required attributes and buffers high-level modules from low-level changes. section 4.2.2
Use three abstraction forms when passing infrastructure metadata:
- Interpolate resource attributes within a module or configuration. section 4.2.2
- Expose module outputs between modules. section 4.2.2
- Retrieve values through infrastructure state or an infrastructure API. section 4.2.2
Protecting a server from network changes
If a network changes its output from a name to an ID, a server module that consumes the raw output can break. An API, stored configuration, module output, or attribute interpolation provides a stable translation layer instead. Python examples show a subnet obtaining the network name from a network object. section 4.2.2
Figure 4.4 Dependency inversion returns an abstraction of the low-level resource metadata to the resource that depends on it.
Diagram the abstraction boundary that returns low-level resource metadata to its dependent resource. section 4.2.2





