A system comprising a distributed system comprising a plurality of computing devices, each computing device hosting a validator, said validator being performed by a separate virtual machine in the host computing device, and said validator being separate from user resources of the host computing device, the system further comprising a coordination point, comprising: a persistent storage comprising a distributed system map; and a processor programmed to: obtain role information associated with the plurality of computing devices from the plurality of validators of the plurality of computing devices, wherein the plurality of computing devices form a plurality of functionality groups, which in turn form a solution group configured to accomplish a goal; update the distributed system map using the obtained role information; identify, using the updated distribution map, a portion of the plurality of computing devices as members of a first functionality group configured to perform one of a plurality of tasks required by the solution group to accomplish the goal, wherein the performed task of the first functionality group is different to a performed task of any other of the plurality of functionality groups; wherein each validator in each computing device of the portion of the plurality of computing devices is configured to: enforce a baseline configuration, associated with the task of the functionality group, on the user resources of said each computing device of the portion of the plurality of computing devices, by: monitoring, at regular intervals over a period of time, a configuration of user resources of said computing device, dynamically updating, based on the monitoring, the configuration of the user resources of said computing device to match the baseline configuration as the configuration of the user resources of the computing device changes over the period of time. a persistent storage comprising a distributed system map; and a processor programmed to: obtain role information associated with the plurality of computing devices from the plurality of validators of the plurality of computing devices, wherein the plurality of computing devices form a plurality of functionality groups, which in turn form a solution group configured to accomplish a goal; update the distributed system map using the obtained role information; identify, using the updated distribution map, a portion of the plurality of computing devices as members of a first functionality group configured to perform one of a plurality of tasks required by the solution group to accomplish the goal, wherein the performed task of the first functionality group is different to a performed task of any other of the plurality of functionality groups; obtain role information associated with the plurality of computing devices from the plurality of validators of the plurality of computing devices, wherein the plurality of computing devices form a plurality of functionality groups, which in turn form a solution group configured to accomplish a goal; update the distributed system map using the obtained role information; identify, using the updated distribution map, a portion of the plurality of computing devices as members of a first functionality group configured to perform one of a plurality of tasks required by the solution group to accomplish the goal, wherein the performed task of the first functionality group is different to a performed task of any other of the plurality of functionality groups; wherein each validator in each computing device of the portion of the plurality of computing devices is configured to: enforce a baseline configuration, associated with the task of the functionality group, on the user resources of said each computing device of the portion of the plurality of computing devices, by: monitoring, at regular intervals over a period of time, a configuration of user resources of said computing device, dynamically updating, based on the monitoring, the configuration of the user resources of said computing device to match the baseline configuration as the configuration of the user resources of the computing device changes over the period of time. monitoring, at regular intervals over a period of time, a configuration of user resources of said computing device, dynamically updating, based on the monitoring, the configuration of the user resources of said computing device to match the baseline configuration as the configuration of the user resources of the computing device changes over the period of time.