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