A developer needs to deploy an early iteration of a dapp to the mainnet. They are aware of the limitations on upgradability, but they decide to go around Ethereum’s immutability by using multi-contract architecture. To make sure that they are able to allow upgraded contracts calling into the main one, and restrict unauthorized access, they’ll need to use the Contract Access module.