> In addition, the desire to create Terraform modules that meet every single user’s possible use case means that often, the module will expose the entire surface area of the APIs the module is managing to the user. Usually, this leaves you in a position of having to painstakingly read the whole module’s code before using it, and if something breaks, you’re shit out of luck.<p>This is a general problem with dependencies of all kinds. Libraries and frameworks are incentivised to cater to as many use cases as possible. Each user will only need a tiny slice of the functionality covered by the dependency. The remainder of the dependency will be dead code at best, or bloat at worst.