Skip to content

Features

jbauer edited this page Oct 6, 2015 · 5 revisions

Timers

An activity can be scheduled to run any time in the future using the fires_at attribute.


Retrying

If an activity is running on the client and an exception is raised the activity will be marked as client error on the backbeat server and retried with a backoff. If communication with backbeat fails, or the client process dies while processing, the server will resend the activity to the client automatically after a certain time defined by the client. Number of retries can also be configured.


Client Timeout

The server will resend the activity to the client automatically after a certain time if the server does not hear from the client. The specific time it takes for an activity to timeout can be set with the client_timeout value. By default the activity times out after 2 days. You can change the default value in config/options.yml in the backbeat server or override it on an individual activity definition.


Link Activities Across Workflows

Activities can have parent_link's which prevent the parent activity from moving to complete state until the child link has completed.


Notification Endpoint

If an activity has an error on the client it will send a notification to the user's notification endpoint url.


Activity Modes

An activity can run in several different modes.

Blocking

A workflow or activity will NOT process its next child activity if a blocking child activity has not yet completed.

Non Blocking

A workflow or activity will process its next child activity if a non-blocking child activity has not yet completed. However the parent of the non-blocking activity will not complete until the non-blocking has completed.

Fire and Forget

A workflow or activity WILL process its next child activity if a fire-and-forget child activity has not completed. The parent of a fire-and-forget activity is allowed to complete regardless of whether the fire-and-forget activity has completed.