Maturity and known gaps

This page states what ArcFlow ships today at production quality, what is alpha or partial, and what is explicitly deferred. Do not document deferred items as available in tutorials or customer-facing copy. When a feature is partial, describe the gap honestly so operators can plan workarounds.

Verified baseline: 2026-05-31 against arcflow-core, arcflow-server, and migrations 20240531000001 through 000007.

Maturity matrix

AreaMaturityNotes
Linear workflowsProductionSDK and server paths
Graph executionProductionRouting, joins, parallel fan-out; graph recovery resume partial
RAG / vector memoryProductionRequires Qdrant and non-stub embedding provider in prod
Human-in-the-loop (HITL)ProductionRequires recovery_enabled and Postgres
External callbacksProductionHMAC verification on webhook ingress
Static product (Relay + admin + static SDK)ProductionSites, ingest, semver publish
Server SSE streamingDeferredGET /v1/runs/{id}/events not implemented
OpenTelemetry metricsAlphaOpt-in export stabilizing
CLI arcflow validateStubUse JSON Schema in CI until full validation ships
Operator dashboard UIDeferredPrivate ArcFlow-Dashboard repo; OSS spec complete
Edge WASMAlphaLinear stub only; not for production

Production areas in brief

Linear workflows are the default path for SDK and POST /v1/runs. Recovery resume from last committed step is supported when persistence is on.

Graph execution handles conditional edges, branch termination (to: null), join nodes, and checkpoints written to Postgres. Execution of new runs is production-ready; resuming a failed graph from checkpoint is not (see graph recovery below).

RAG uses Qdrant collections per namespace, hybrid dense/sparse when configured, optional Cohere rerank. Traces record retrieval metrics only (metadata-only trace policy).

HITL interrupts with Interrupted status, approve/reject via server API, timeout and duplicate-approve error codes documented in the workflow specification.

Static product covers admin site lifecycle, knowledge ingest, chat workflow publish, Relay origin and rate limits, and runPublished() in the browser.

Known gaps and deferred work

GapStatusWorkaround / plan
Graph recovery resume from checkpointPartialSchema and persist_graph_checkpoint exist; resume dispatch incomplete. Do not rely on mid-graph resume in production. Linear recovery works.
Server SSE /v1/runs/{id}/eventsDeferredPoll GET /v1/runs/{id} or trace. SDK run_stream() works in-process. Browser polls Relay trace for TokenEmitted.
Operator dashboard UIDeferredOSS Dashboard spec (ArcFlow repository) and admin API are source of truth. UI lives in private ArcFlow-Dashboard. Use admin API, scripts/static-*.sh, or v0 starter until the dashboard passes private CI exit criteria.
Stable OpenTelemetry metrics exportAlphaCore runtime does not need OTel. Enable only with review of label cardinality and trace data policy.
Full arcflow validate schema checkStubCLI command exists but does not fully validate. Validate against workflow schema in CI.
Production signoff checklistTrackingSee production readiness plan in the repository

Graph recovery (partial)

When recovery_enabled is true, graph runs persist current_node_id, graph_iteration_count, and pending_join in arcflow_recovery_state. That supports observability and future resume. Dispatch to continue from those fields after a crash is incomplete. Treat graph runs as non-resumable for SLA planning until graph recovery resume ships.

Server streaming (deferred)

Do not document SSE on the server as shipped. Client integrations should use polling or SDK streaming inside your backend, not expect browser SSE from arcflow-server.

Dashboard UI (deferred)

Operators today:

  • Call admin routes (POST /v1/admin/sites, knowledge ingest, chat publish) with ARCFLOW_ADMIN_API_KEY
  • Run arcflow migrate up and health checks via CLI
  • Query Postgres for runs and traces
  • Sync private dashboard repo from deploy/arcflow-dashboard-v0/ when building UI

OSS spec must lead API changes; dashboard implementation must not drift admin semantics without spec updates.

OpenTelemetry (alpha)

ARCFLOW_OTEL_ENABLED and ARCFLOW_OTLP_ENDPOINT exist for early adopters. Metrics export may change. Not required for workflow correctness.

CLI validate (stub)

arcflow validate is not a substitute for schema validation in CI. Use the normative JSON Schema until the CLI implements full checks.

Feature parity snapshot

Not every surface exposes every capability. Highlights:

CapabilityServerRelayStatic SDKCLIWASM
Graph workflowsYYvia publishn/aN
Server SSEN (deferred)n/apolln/aN
RecoveryYn/an/amigrateN
Admin / sitesYn/an/an/aN

Full matrix: SDK parity matrix.

Contract drift warning

HTTP API reference may list only legacy routes. Implemented server routes match server/arcflow-server/src/lib.rs and the current HTTP API reference. Update normative docs when promoting from draft.