1. A method for allocating resources, comprising: collecting proposals from a plurality of modules, the proposals assigning the resources to the plurality of modules and resulting in topology changes in a computer network environment; identifying a set of proposals in the proposals, the set of proposals complying with policies associated with the plurality of modules; instructing the plurality of modules to evaluate the set of proposals; selecting a proposal from the set of proposals; and instructing at least one module associated with the selected proposal to instantiate the selected proposal.