Writing a single template consisting of Azure resources is quite common among developers. This is because it is easier and faster to author such ARM templates. However, this comes at a cost. These templates are not reusable, and it is difficult to maintain them. Consider a scenario where other projects might need to create some of the resources that are already in an existing ARM template. They cannot reuse this template before they modify it to suit their requirements. Alternatively, if the ARM templates are divided into multiple subtemplates, each consisting of a single or a few related resources, these sub-templates can be consumed directly by other projects.
A single template is also difficult to maintain. Any changes in the ARM templates need to be verified across all the resources. Deploying a large template is more time-consuming than deploying...