1. A system, comprising: a workflow data store configured to store workflow definitions, wherein respective workflow definitions stored in the data store comprise statements according to a workflow definition language, wherein the statements define states of a respective workflow, and wherein the statements include fields specifying: a task to be performed for the respective workflow; and an error handling mechanism, wherein the error handling mechanism includes: a timeout specification for the task; and a heartbeat specification for the task; and a workflow service implemented by one or more computing devices and configured to: receive a given workflow definition of the workflow definitions from the data store for a particular workflow; construct a state machine for the particular workflow as defined in the given workflow definition for the particular workflow; execute the particular workflow according to the state machine, wherein to execute the particular workflow, the workflow service is further configured to: determine, according to the given workflow definition for a current state of the workflow, a particular task, a particular timeout specification for the particular task, and a particular heartbeat specification for the particular task; request execution of the particular task, set a heartbeat timer according to the heartbeat specification, and set a timeout timer according to the timeout specification; transition from the current state to an error handling state based at least on either a heartbeat message not being received from the particular task before expiration of the heartbeat timer or the timeout timer expiring before the particular task completes execution; and transition from the current state to a next state in the state machine based at least on the particular task completing execution without either the heartbeat timer expiring or the timeout timer expiring.