Feature Request: Highly-Available Timer Actions
Nobody has claimed this yet.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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