1. A system, comprising: a plurality of computing devices configured to execute a plurality of tasks associated with a plurality of workflows; and one or more computing devices configured to implement a workflow scheduler, wherein the workflow scheduler is configured to: instantiate a plurality of objects in a first layer, wherein each of the plurality of objects in the first layer represents a respective regularly scheduled task, wherein the plurality of objects in the first layer are instantiated in response to the activation of a pipeline comprising the regularly scheduled tasks, and wherein the plurality of objects in the first layer comprise processes for schedule monitoring and processes for object creation; instantiate a plurality of objects in a second layer using the processes for object creation, wherein each of the plurality of objects in the second layer represents a respective scheduled instance of one of the regularly scheduled tasks, wherein each of the plurality of objects in the second layer is instantiated according to a respective schedule for the corresponding task based at least in part on monitoring of the respective schedule by at least one of the processes for schedule monitoring in the first layer, and wherein the plurality of objects in the second layer comprise a first object and a second object representing respective scheduled instances of a particular one of the regularly scheduled tasks at respective different times; determine whether each of the objects in the second layer is ready to execute, comprising, for at least one of the objects in the second layer, determining if the object has received one or more notifications from one or more objects in the second layer on which the object depends; for each of the objects that is ready to execute, cause execution of the regularly scheduled task associated with the object, wherein the execution is performed using the plurality of computing devices, wherein the second object is instantiated after the regularly scheduled task associated with the first object is successfully executed, and wherein the particular one of the regularly scheduled tasks is maintained in the first layer between instantiation of the first object and instantiation of the second object; and for each of the objects that is not ready to execute, put the object to sleep.