A data management system for managing a data store, the system comprising: a data store implemented in at least one data storage device or server; and a system stack which is configured to communicate with the data store, wherein the system stack comprises: a central control module configured to receive a request and generate a task using the request; a state store module coupled to the central control module and configured to store the task generated by the central control module; a task engine module configured to receive tasks from the state store module and to enact the tasks, wherein the task engine module is configured to prioritise tasks based on the dependencies and relationships of the tasks so that the tasks are enacted in an optimal order to maximise the efficiency of the data management system; a state monitoring module which is configured to monitor the state of the data store and provide state information indicative of a state of the data store to the state store module, wherein the state store module is configured to store the state information and any changes to the data store as tasks and to output the stored task in response to the state information; and an enactor module which is configured to action the task output from the state store module by generating an enactor output command that at least partly corresponds to the task which, when communicated to the data store, causes the data store to perform an action related to data stored in the data store, wherein the data management system is configured to ensure that the state of the data store matches the state indicated by the state information stored by the state store module by enacting specific operations to bring the state of the data store into conformity with the state indicated by the state information stored by the state store module. a data store implemented in at least one data storage device or server; and a system stack which is configured to communicate with the data store, wherein the system stack comprises: a central control module configured to receive a request and generate a task using the request; a state store module coupled to the central control module and configured to store the task generated by the central control module; a task engine module configured to receive tasks from the state store module and to enact the tasks, wherein the task engine module is configured to prioritise tasks based on the dependencies and relationships of the tasks so that the tasks are enacted in an optimal order to maximise the efficiency of the data management system; a state monitoring module which is configured to monitor the state of the data store and provide state information indicative of a state of the data store to the state store module, wherein the state store module is configured to store the state information and any changes to the data store as tasks and to output the stored task in response to the state information; and an enactor module which is configured to action the task output from the state store module by generating an enactor output command that at least partly corresponds to the task which, when communicated to the data store, causes the data store to perform an action related to data stored in the data store, a central control module configured to receive a request and generate a task using the request; a state store module coupled to the central control module and configured to store the task generated by the central control module; a task engine module configured to receive tasks from the state store module and to enact the tasks, wherein the task engine module is configured to prioritise tasks based on the dependencies and relationships of the tasks so that the tasks are enacted in an optimal order to maximise the efficiency of the data management system; a state monitoring module which is configured to monitor the state of the data store and provide state information indicative of a state of the data store to the state store module, wherein the state store module is configured to store the state information and any changes to the data store as tasks and to output the stored task in response to the state information; and an enactor module which is configured to action the task output from the state store module by generating an enactor output command that at least partly corresponds to the task which, when communicated to the data store, causes the data store to perform an action related to data stored in the data store, wherein the data management system is configured to ensure that the state of the data store matches the state indicated by the state information stored by the state store module by enacting specific operations to bring the state of the data store into conformity with the state indicated by the state information stored by the state store module.