-
Notifications
You must be signed in to change notification settings - Fork 44
Feature Set
As features of flux we intend to provide State management, reliable delivery/execution, tenant isolation, checkpointing, replay, fork and join and all standard features for tracking and metrics.
Theoretical State machine construct is incapable of supporting Parallel states but Flux definitely supports fork and join constructs.
We intend to support configurable delivery semantics (At least or utmost once) at a task unit level. (To interpret this easily: we support configurable retries on actions).
Client SDK & Tenanting: We intend to provide SDKs for the users to code their workflows as a string of task units for which interfaces will be provided to the developers. This means any user action can be modelled to be executed under a task interface.
Since we are providing complete flexibility to the user in terms of a task definition we expect to tenant out the execution of those tasks in a runtime which essentially means that in the long run clients will be responsible for the compute necessary for the workflows at whatever scale they intend to use it.
Hooks: On-Entry and On-Exit hooks for a state will be provided. These will be run asynchronous to the state machine execution. It’s being contemplated to be a fire and forget.
Rollback & Suspension & cancellation: We intend to provide roll back capabilities at a task unit level. We intend to provide asynchronous Suspension and cancellation for on going workflows.
Tracking & Metrics: UI enabled access will be given to access these constructs.
Authentication, Authorization & Security: Necessary constructs for authentication and authorization will be provided.Once the platform is matured enough to run outside of our eco system, constructs to authenticate and orchestrate transitions from external systems will also be incorporated.
Fork & Join: We will be supporting constructs for forking an execution and aggregating the result out of those executions back to the caller. The fork join construct can be static or dynamically decided at runtime.
Check pointing: Every state transition is an implicit check point. If user intends to maintain any other checkpoints it is upto the user to specify it in the workflow. Constructs will be provided.
Manual Intervention: Constructs for manual intervention to a workflow will also be provided. API for resuming an execution will be provided.
Replay: Constructs would be provided to replay/rerun a workflow from the beginning or from a particular state.