StackStorm / StackStorm/st2

Feature Request: Highly-Available Timer Actions

Open
#2,782 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement proposal status:under discussion
Dominant language
Python
Stars
6.5k
Forks
787
PR merge metrics
No merged PRs in 30d

Description

Thought I'd put a placeholder feature request out here for further discussions.

I'd like to execute Cron Timer jobs in a highly-available, fault-tolerant manner. I've discussed this with @Kami, @manasdk and others pretty extensively in slack in the past.

Option 1. Concurrency Policy should support Fail option in addition to Queue/Postpone

It seems to me that the simplest solution is to add a second behavior to the existing concurrency policy framework (rather than pyraft over rabbitmq). Currently the behavior of the Concurrency Policy is to postpone additional requested executions above a threshold; if we add a configurable option to fail/drop them instead of postponing them, I think this would satisfy this criteria.

Would this result in multiple executions showing in the execution history still though? I've just finished implementing a simple solution using ZooKeeper non_blocking_lock (minimal zookeeper pack forthcoming). But this results in 2x actions showing in the execution history. I hope this wouldn't occur with a more native StackStorm solution.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names no files or tests. Start with StackStorm's existing concurrency policy framework and Cron Timer execution path, then clarify the proposed highly available behavior and execution-history expectations with maintainers. Done requires an agreed implementation scope and validation plan, but the payload does not identify specific files or tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend, devops
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.