- Each framework has multiple plans. Each plan has its own life-cycle (multiple plans can be active at the same time).
- Each plan has n phases that can either be run in serial or parallel.
- Each phase is an ordered list of n steps. These n steps can either be run in serial or parallel (supports
-canarytoo). - Each step is a 2d array. Each element in this array is a list of tasks. Each element in the array (which can be a list of length > 0) is ALWAYS run in parallel. Elements themselves are run in parallel. The
strategydefined at phase is used orchestrate across elements.
# `interleave`, `parallel-tasks` etc.. are all phases.