A method for executing a distributed operating system that provides an execution environment in which one or more applications execute, the method comprising: executing, by a plurality of hardware computing nodes, a protocol by which to discover a topology of the plurality of hardware computing nodes, wherein executing the protocol comprises exchanging announcements between the plurality of hardware computing nodes, the announcements indicating whether each of the plurality of hardware computing nodes is capable of executing as a manager hardware computing node that manages execution of the distributed operating system; determining, by at least one of the plurality of hardware computing nodes and based on the topology, a plurality of manager hardware computing nodes to manage execution of the distributed operating system, wherein the plurality of manager hardware computing nodes is a subset of the plurality of hardware computing nodes; electing, by the plurality of manager hardware computing nodes, one of the manager hardware computing nodes as a manager master hardware computing node; executing, by the plurality of manager hardware computing nodes, an inter-process communication mechanism by which to synchronize operating system state information between the plurality of manager hardware computing nodes; executing, by the plurality of hardware computing nodes and based on the operating system state information, the distributed operating system to provide an execution environment in which one or more applications execute; and managing, by the plurality of manager hardware computing nodes, execution of the distributed operating system, wherein the managing comprises coordinating execution of the one or more applications within the execution environment provided by the distributed operating system, wherein the manager master hardware computing node communicates application decisions to the other manager hardware computing nodes, and wherein the plurality of manager hardware computing nodes act on the application decisions to execute the one or more applications. executing, by a plurality of hardware computing nodes, a protocol by which to discover a topology of the plurality of hardware computing nodes, wherein executing the protocol comprises exchanging announcements between the plurality of hardware computing nodes, the announcements indicating whether each of the plurality of hardware computing nodes is capable of executing as a manager hardware computing node that manages execution of the distributed operating system; determining, by at least one of the plurality of hardware computing nodes and based on the topology, a plurality of manager hardware computing nodes to manage execution of the distributed operating system, wherein the plurality of manager hardware computing nodes is a subset of the plurality of hardware computing nodes; electing, by the plurality of manager hardware computing nodes, one of the manager hardware computing nodes as a manager master hardware computing node; executing, by the plurality of manager hardware computing nodes, an inter-process communication mechanism by which to synchronize operating system state information between the plurality of manager hardware computing nodes; executing, by the plurality of hardware computing nodes and based on the operating system state information, the distributed operating system to provide an execution environment in which one or more applications execute; and managing, by the plurality of manager hardware computing nodes, execution of the distributed operating system, wherein the managing comprises coordinating execution of the one or more applications within the execution environment provided by the distributed operating system, wherein the manager master hardware computing node communicates application decisions to the other manager hardware computing nodes, and wherein the plurality of manager hardware computing nodes act on the application decisions to execute the one or more applications.