A method, comprising: subscribing (803, 813, 823, 833), by a first control module (204, 206, 208, 210) of a network, to a key of a state store of the network, the state store comprising one or more stored data objects and one or more unique keys, each of the one or more stored data objects being associated with one of the one or more unique keys, the key being one of the one or more unique keys; receiving (807, 817, 827, 837) from the state store, at the first control module (204, 206, 208, 210), a notification associated with the key; reading (808, 818, 828, 838), by the first control module (204, 206, 208, 210), a data object from the one or more stored data objects in the state store in response to the notification, the data object being associated with the key, and the data object comprising a network function virtualization, NFV, policy specification; and modifying, by the first control module (204, 206, 208, 210), a network traffic flow of the network through one or more software network functions of the network based on the data object; wherein the NFV policy specification comprises: one of a logical NFV policy specification that specifies how network traffic shall flow through a series of software network functions, a sized NFV policy specification that specifies how many instances of each software network function are needed to implement the NFV policy specification, a placed NFV policy specification that specifies where software network functions that implement the NFV policy specification should be placed within the network, or a chained NFV policy specification that specifies how the network traffic shall flow between software network functions used to implement the NFV policy specification, or one or more of a command or a status; and wherein modifying the network traffic flow of the network comprises: configuring, by the first control module (204, 206, 208, 210), a software data plane of the network; deploying, by the first control module (204, 206, 208, 210), the one or more software network functions within the network based on the data object; changing, by the first control module (204, 206, 208, 210), a configuration of one or more software network functions within the network based on the data object; or changing, by the first control module (204, 206, 208, 210), a configuration of one or more software components within the network, wherein the one or more software components comprise one or more of a software switch, a load balancer, or a router. subscribing (803, 813, 823, 833), by a first control module (204, 206, 208, 210) of a network, to a key of a state store of the network, the state store comprising one or more stored data objects and one or more unique keys, each of the one or more stored data objects being associated with one of the one or more unique keys, the key being one of the one or more unique keys; receiving (807, 817, 827, 837) from the state store, at the first control module (204, 206, 208, 210), a notification associated with the key; reading (808, 818, 828, 838), by the first control module (204, 206, 208, 210), a data object from the one or more stored data objects in the state store in response to the notification, the data object being associated with the key, and the data object comprising a network function virtualization, NFV, policy specification; and modifying, by the first control module (204, 206, 208, 210), a network traffic flow of the network through one or more software network functions of the network based on the data object; wherein the NFV policy specification comprises: one of a logical NFV policy specification that specifies how network traffic shall flow through a series of software network functions, a sized NFV policy specification that specifies how many instances of each software network function are needed to implement the NFV policy specification, a placed NFV policy specification that specifies where software network functions that implement the NFV policy specification should be placed within the network, or a chained NFV policy specification that specifies how the network traffic shall flow between software network functions used to implement the NFV policy specification, or one or more of a command or a status; and wherein modifying the network traffic flow of the network comprises: configuring, by the first control module (204, 206, 208, 210), a software data plane of the network; deploying, by the first control module (204, 206, 208, 210), the one or more software network functions within the network based on the data object; changing, by the first control module (204, 206, 208, 210), a configuration of one or more software network functions within the network based on the data object; or changing, by the first control module (204, 206, 208, 210), a configuration of one or more software components within the network, wherein the one or more software components comprise one or more of a software switch, a load balancer, or a router. configuring, by the first control module (204, 206, 208, 210), a software data plane of the network; deploying, by the first control module (204, 206, 208, 210), the one or more software network functions within the network based on the data object; changing, by the first control module (204, 206, 208, 210), a configuration of one or more software network functions within the network based on the data object; or changing, by the first control module (204, 206, 208, 210), a configuration of one or more software components within the network, wherein the one or more software components comprise one or more of a software switch, a load balancer, or a router.