diff --git a/beps/0004-scaffolder-task-idempotency/README.md b/beps/0004-scaffolder-task-idempotency/README.md new file mode 100644 index 0000000000..47d2351189 --- /dev/null +++ b/beps/0004-scaffolder-task-idempotency/README.md @@ -0,0 +1,104 @@ +--- +title: Scaffolder Task Idempotency +status: provisional +authors: + - 'benjaminl@spotify.com' + - 'patriko@spotify.com' + - 'freben@gmail.com' + - 'bnechyporenko@bol.com' +owners: +project-areas: + - scaffolder +creation-date: 2024-01-31 +--- + + + +# BEP: + + + +[**Discussion Issue**](https://github.com/backstage/backstage/issues/22590) + +- [Summary](#summary) +- [Motivation](#motivation) + - [Goals](#goals) + - [Non-Goals](#non-goals) +- [Proposal](#proposal) +- [Design Details](#design-details) +- [Release Plan](#release-plan) +- [Dependencies](#dependencies) +- [Alternatives](#alternatives) + +## Summary + +Scaffolder task idempotency provides the means to make each action of the task idempotent. By default, an action is not considered to be idempotent. +It has to be crafted to a solution when action can be re-run multiple times and giving the same effect as it had been run only once. + +## Motivation + +The aim is to make task engine more reliable in terms of system crash or redeployment. If the task engine is in process of executing +tasks and system stops, after restart task engine will restore all such tasks and continue their execution. +Another purpose is to make it possible to manually retry the task from the last failed step. + +### Goals + + + +- provide a checkpoint functionality which can be used in task actions +- make built-in actions idempotent +- enhance task UI with a possibility to retry the failed task from the last failed step +- preserve a workspace till task succeeded or archived + +### Non-Goals + + + +## Proposal + + + +## Design Details + + + +## Release Plan + + + +## Dependencies + + + +## Alternatives + +