2 min read · tagged scad
Connection patterns
Description language
Primitives (explicit)
Features (implicit)
Traditional model: Engine -> Queue -> Worker VMs -> Storage
Queue model: Engine -> Queue -> Worker Cloud Functions -> Storage
Direct executor model: Engine -> Worker Cloud Functions -> Storage
Bridge model: Engine -> Queue -> Worker VMs + Bridge to Worker Cloud Functions -> Storage
Decentralized model: Cloud Functions -> Storage
Metrics | Amazon Step Functions | IBM Composer | Azure Durable Functions |
---|---|---|---|
ST-safe (composition as functions) | No | Yes | Yes |
Programming model | DSL(JSON) | Composition library (JS) | async/await (C#) |
Reflective API | Yes(limited) | No | Yes |
Parallel execution support | Yes(limited) | No | Yes(limited) |
Software packaging and repositories | Yes | Yes | Yes(no repo) |
Billing model | $0.025 per 1000 state transitions | Orchestrator function execution | Orchestrator function execution + storage cost |
Architecture | Synchronous client scheduler | Reactive scheduler | Reactive scheduler |
Workflow preparation/rewriting: Achieve series-parallel structure for polynomial execution time from directed acyclic graphs
Function execution
Resource re-use
Runtime pooling
Workflow execution-specific
Prefetching: Fetch function source upfront
Prewarming: Predictive function execution (via runtime analysis and function stats)
Simon Anliker Someone has to write all this stuff.