Error handling in executing workflow state machines

US9904585B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9904585-B1
Application numberUS-201514876555-A
CountryUS
Kind codeB1
Filing dateOct 6, 2015
Priority dateOct 6, 2015
Publication dateFeb 27, 2018
Grant dateFeb 27, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A workflow interpreter service that interprets a workflow definition language for specifying a workflow definition. Further, the workflow definition language provides features for maintaining control over data flows for data that is passed from one state to another among states of a state machine for a workflow and features for handling errors that may occur within any given state of a workflow state machine. Such control over data flow in between states allows for a given workflow to be processed incrementally, and among multiple different computing resources. Further, the workflow definition language error handling features provide for robust error handling within the state machine framework corresponding to workflow.

First claim

Opening claim text (preview).

What is claimed is: 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. 2. The system of claim 1 , wherein the workflow service further comprises: a workflow handling service implemented by one or more computing devices and configured to: maintain workflow logs for respective workflows, wherein a workflow log logs the data flow object for the particular workflow with respect to different events, wherein different entries in the particular workflow log include different versions of the data flow object; and request a workflow decision for the particular workflow to determine a task to schedule. 3. The system of claim 2 , wherein the workflow service further comprises: a workflow evaluation service implemented by one or more computing devices and configured to: receive the request for the workflow decision for the particular workflow, wherein the request includes at least a portion of the particular workflow log for the particular workflow including at least a portion of the different versions of the data flow object; and a workflow definition interpreter implemented by one or more computing devices and configured to interpret the particular workflow definition to: perform the constructing of the state machine; use the workflow log for the particular workflow to transition the state machine to the current state; perform the determining of the particular task, the particular timeout specification, and the particular heartbeat specification; perform the execution of the particular task, set the heartbeat timer according to the heartbeat specification, and set the timeout timer according to the timeout specification; perform the transition from the current state to an error handling state; and perform transition from the current state to a next state in the state machine. 4. The system of claim 3 , wherein the workflow evaluation service is further configured to: send the workflow decision for the particular workflow to the workflow handling service, wherein the workflow decision specifies the one or more tasks defined for the current state; and the workflow handling service is further configured to: receive the workflow decision from the workflow evaluation service; log the workflow decision and the adjusted data flow object in the workflow log for the particular workflow; and schedule for execution the one or more tasks corresponding to the workflow decision. 5. The system of claim 1 , wherein the workflow service is further configured to: send, to a visualization service, a message indicating beginning execution of the particular task; receive the heartbeat message from the particular task and reset the heartbeat timer; and send, to the visualization service, a message indicating that the heartbeat message has been received from the particular task. 6. A method, comprising: performing, by one or more hardware processors: receiving a workflow definition for a workflow, wherein the workflow definition comprises statements according to a workflow definition language, wherein the statements are associated with states of the workflow, and wherein the statements include: a field specifying a task to be performed for the workflow; a separate field specifying a retry specification indicating information for retrying the task in response to an error; and a separate field specifying a catch specification indicating an error handling state transition for one or more errors; constructing a state machine for the workflow as defined in the workflow definition for the workflow; and executing the workflow according to the state machine, wherein the executing the workflow comprises: requesting execution of the task to be performed; determining that execution of the task has generated the error; retrying, according to the retry specification, execution of the task; determining that the retrying of the execution of the task has failed; and transitioning, according to the catch specification, to an error handling state. 7. The method of claim 6 , wherein the statements according to the workflow definition language further include fields specifying: a timeout specification for the task, and a heartbeat specification for the task; wherein the method further comprises: setting a heartbeat timer according to the heartbeat specification; setting a timeout timer according to the timeout specification; receiving one or more heartbeat messages from the task; and resetting the heartbeat timer in response to each received heartbeat message; and wherein the error indicates expiration of the heartbeat timer. 8. The method of claim 6 , wherein the statements according to the workflow definition language further include fields specifying: a timeout specification for the task, and a heartbeat specification for the task; wherein the method further comprises receiving one or more heartbeat messages from the task; and wherein the error indicates expiration of the timeout timer without an indication of the task completing successfully. 9. The method of claim 6 , wherein, in accordance with the workflow definition language, the workflow definition for the current state of the workflow includes the field specifying the retry field further includes: a specification of a list of error conditions; a specification of a retry interval; a specification of a backoff coefficient; a specification of a maximum retry interval; or a specification of maximum attempts. 10. The method of claim 9 , wherein the list of error conditions in the retry field includes an error condition for the error, and wherein the method further comprises: determining that the error condition has been set during execution of the task; matching the error condition from the determining of the error condition in the list of error conditions; and wherein the r

Assignees

Inventors

Classifications

  • Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues · CPC title

  • G06F11/079Primary

    Root cause analysis, i.e. error or fault diagnosis (in a hardware test environment G06F11/22; in a software test environment G06F11/36) · CPC title

  • within a central processing unit [CPU] · CPC title

  • Workflow analysis · CPC title

  • Sequencing of tasks or work · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9904585B1 cover?
A workflow interpreter service that interprets a workflow definition language for specifying a workflow definition. Further, the workflow definition language provides features for maintaining control over data flows for data that is passed from one state to another among states of a state machine for a workflow and features for handling errors that may occur within any given state of a workflow…
Who is the assignee on this patent?
Amazon Tech Inc
What technology area does this patent fall under?
Primary CPC classification G06F11/079. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 27 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 4 related publications on this page (citations in our corpus or others sharing the same primary CPC).