$ cat ./ROADMAP.md
what we're building. in the open.
An honest view of what's shipped, what we're working on now, and what's on the horizon. No fixed dates — we ship when it's right. Items and ordering may shift as we learn.
shipped
07engine foundation
engine extraction + ctx ports
engine pulled out of the monolith. ctx interface with ai, audit, and logger ports — and deliberately no db port. engine never imports sdk or platform code — it doesn't even depend on them.
walker, flow dispatch, durable sleep
edge-driven workflow runtime. category=flow dispatch, delay node, and workflow.sleep wrapping temporal — workers can die mid-delay and the run resumes.
engine primitives suite
edge-driven walker (reachable bfs), flow primitives (if_else, switch, parallel, join, fail), human-in-the-loop via signal + timeout race, decorator slots, cost channel, template grammar.
sdk + lifecycle events + sub-workflow
@flowget/sdk: thin temporal-client wrapper (submit, subscribe, cancel, signal, query). lifecycle stateevents emitted. runsubworkflow primitive via executechild.
payload codec (sdk + aes-256-gcm)
payloadcodec option in the sdk plus a reference aes-256-gcm codec that encrypts at the worker edge with a customer-held key. opt-in per tenant.
security baseline
lint blocks eval/function/vm. a redaction helper covers known secret patterns — tokens, jwts, urls — applied opt-in. activityfailure mapped to nodeerror with classification. security.md + private disclosure across our published packages.
github packages publish pipeline
versioned publish chain for types, engine, cli, stdlib under @flowget. public-read with no token required, ready for the customer scaffold.
in progress
02spec locked, implementation active
subscribe protocol
two surfaces — sdk.subscribe (asynciterable) and workeroptions.onevent — both wrap the same temporal update streamevents handler. one primitive, two ergonomics.
definenode lifecycle + actor layer
authorize, validate, computecost, finalize, configure hooks on every node. actor layer separates engine wiring from customer code. spec locked after four review passes.
planned
03onboarding, primitives, tooling
zero-friction cli onboarding
npx create-flowget-app scaffolds a ready project → flowget-worker runs your nodes → submit workflows via the sdk. customer onboarding in a few commands.
input scope + sub-workflow registry
execution input exposed as {{ input.* }} in template scope. stdlib subworkflownode with in-process child registry injection.
workflow.json schema codegen
flowget schema emits a json schema for workflow.json so editors give autocomplete and validation without manual setup.
exploring
04cloud, ai authoring, compliance
cloud control plane + byo worker
hosted control plane with worker running on customer vpc. multi-tenant ctx, auth handoff with signing-key rotation, cluster db cross-tenant safety, tenant isolation playbook.
codec wire format + guardrail service
grpc wire with permanent v1 backwards compat. codec-server for temporal ui decrypt, manifest auto-push on connect. internal guardrail for admission control and abuse detection.
first real customer rebuild on sdk
a design partner rewrites its runtime on @flowget/sdk + ctx ports while keeping its own database. validates the engine-has-no-db architectural bet.
ai authoring + cost portability
authoring_session_id and node_shape_signature as first-class telemetry contract. cost model portability when the worker runs inside a customer vpc.