3 ms·
This appears to be a novel way to represent how the application interacts with state though, an API plus runtime. I've used workflow engines before, which prov
by jcrites 3y ago
This appears to be a novel way to represent how the application interacts with state though, an API plus runtime.
I've used workflow engines before, which provide similar capabilities: execute a distributed process to completion in the presence of failures. However, you have to be really careful when building workflow applications not to introduce accidental side-effects (that are not modeled in the workflow directly), or else the result will be nondeterministic (unspecified at best).
I haven't used Dagster or Prefect but it looks like this tool uses a different approach. An application developer doesn't need to "model" their workflow using this tool - just implement it on top of the API that Flawless provides. It reminds me a bit of the AWS Flow framework [1] for AWS SimpleWorkflow, but when developing Flow applications (which are Java apps) you still have to be extremely careful not to accidentally introduce local side effects or nondeterminism.
Because this approach provides a deterministic runtime, I see it being plausible that developers could be significantly more confident that their code is, in fact, deterministic.
[1] https://aws.amazon.com/swf/details/flow/ https://aws.amazon.com/swf/details/flow/