A system for configuring a network, comprising: an interaction agent component configured to receive a set of network requirements and publish at least a portion of the set of network requirements to a system data store; an application agent component configured to receive the published network requirements and publish to the system data store device requirements for a plurality of network devices (106, 108), characterized in that the application agent is configured to subscribe to the published network requirements published in the system data store and the device requirements includes declarative device requirements generated using the set of network requirements for the plurality of network devices (106, 108); and in that a different instance of a proxy agent (116, 118) component included in each network device of a plurality of the network devices (106, 108) is operable to receive at least a portion of the published device requirements including a corresponding portion of the declarative device requirements, the corresponding portion of the declarative device requirements received at the corresponding proxy agent including a specification of a desired configuration that is independent of any specific vendor for the corresponding network device, and the different instance of the proxy agent component included in each network device of the plurality of the network devices configured to generate at the corresponding network device, native hardware instructions for the corresponding network device based on the received device requirements including the corresponding portion of the declarative device requirements to configure the corresponding network device, wherein publishing at least the portion of the set of network requirements to the system data store includes storing at least the portion of the set of network requirements to the system data store in a manner that identifies the application agent component. an interaction agent component configured to receive a set of network requirements and publish at least a portion of the set of network requirements to a system data store; an application agent component configured to receive the published network requirements and publish to the system data store device requirements for a plurality of network devices (106, 108), characterized in that the application agent is configured to subscribe to the published network requirements published in the system data store and the device requirements includes declarative device requirements generated using the set of network requirements for the plurality of network devices (106, 108); and in that a different instance of a proxy agent (116, 118) component included in each network device of a plurality of the network devices (106, 108) is operable to receive at least a portion of the published device requirements including a corresponding portion of the declarative device requirements, the corresponding portion of the declarative device requirements received at the corresponding proxy agent including a specification of a desired configuration that is independent of any specific vendor for the corresponding network device, and the different instance of the proxy agent component included in each network device of the plurality of the network devices configured to generate at the corresponding network device, native hardware instructions for the corresponding network device based on the received device requirements including the corresponding portion of the declarative device requirements to configure the corresponding network device, wherein publishing at least the portion of the set of network requirements to the system data store includes storing at least the portion of the set of network requirements to the system data store in a manner that identifies the application agent component.