Features
An activity can be scheduled to run any time in the future using the fires_at attribute.
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.
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.
Activities can have parent_link's which prevent the parent activity from moving to complete state until the child link has completed.
If an activity has an error on the client it will send a notification to the user's notification endpoint url.
An activity can run in several different modes.
A workflow or activity will NOT process its next child activity if a blocking
child activity has not yet completed.
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.
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.