Interpreter for Cadence/Temporal
Workflow Engine
Quanzheng Long
Cadence/Temporal is HARD to learn!
Proposal: better interface on top of C/T
Comparison summary
Potential benefits:
Separation of Workflow vs Activity
Cadence workflow:
Cadence activity:
iWF framework:
* Exception for long running activity
Replay & non-determinism & Versioning
Cadence workflow:
iWF framework:
Unit tests
Cadence workflow:
iWF framework:
Other interface contract
Implicit contracts in Cadence:
iWF framework:
Workflow threads
Cadence multi-threading:
iWF framework:
Operation
Cadence operation
iWF framework:
Setup projects using Cadence/Temporal
Cadence workflow:
iWF framework:
Other benefits of iWF
iWF cons & counter arguments
iWF vs C/T vs SWF vs Step Functions
| Prog. model | Prog. language | Unit test | Power | Replay-safe code | Using versioning API |
iWF | Explicit State machines | Native languages | Yes. Native libs likt Junit | Full power as Cadence | Not required | Not needed |
Cadence | Native languages | Yes, TestEnv, hard to use | + Search attribute, long running activity, reset, etc | Required | Supported | |
SWF | Implicit State machines | Native languages | limited | Required | Not supported | |
Step Function | Explicit State machines | JSON | Limited, less than SWF | Not required | Not needed |