prefect server in zig

production readiness#

gaps between zig prefect-server and python prefect server, prioritized by production impact.

tier 1: critical (blocks core workflows)#

concurrency limits (v2 API)#

lease-based slot management for controlling task parallelism. python has full /api/v2/concurrency_limits/ with increment/decrement, renewal, TTL. without this, cannot enforce global rate limits across distributed workers.

automations#

trigger-action systems responding to events (run deployments, send notifications, pause flows). python has full CRUD, trigger validation, resource ownership. without this, limited to scheduled/polling execution only - no reactive workflows.

artifacts#

store output data from runs (models, datasets, reports). python has full lifecycle plus latest artifact queries. without this, cannot track workflow outputs or implement MLOps pipelines.

event filtering & querying#

python has POST /api/events/filter with pagination and POST /api/events/count-by/{countable} for analytics. zig has websocket backfill only. without this, cannot query historical events or build dashboards.

tier 2: high (impacts observability & control)#

graceful shutdown#

drain in-flight requests, flush pending events, clean up state. implemented via SIGTERM/SIGINT handling.

log persistence#

python stores logs in database with filter endpoint. zig is in-memory only. without this, logs lost on restart, no audit trail.

flow/task run state endpoints#

python has /api/flow_run_states/{id} and filter endpoints. zig only has implicit state access. without this, cannot query state history or build state-transition dashboards.

rate limiting & auth#

python has request limiting, CSRF protection, basic auth. zig has none. without this, no protection against floods or unauthorized access.

ui endpoints#

python has /api/ui/flows/, /api/ui/flow_runs/, etc. with optimized queries. without this, UI falls back to raw API with poor UX.

tier 3: medium (operational needs)#

background services#

python has: late_runs, foreman, cancellation_cleanup, pause_expirations, task_run_recorder. zig has scheduler and event persisters only.

flow/run mutation endpoints#

python has PATCH/DELETE for flows and flow_runs. zig lacks these - immutable-only API.

task run orchestration rules#

python has CacheRetrieval, CacheInsertion, PreventRunningTasksFromStoppedFlows, RetryFailedTasks. zig has none.

remaining flow run rules#

HandleFlowTerminalStateTransitions, HandlePausingFlows, HandleResumingPausedFlows not implemented.

mvp production:

  1. concurrency limits v2
  2. event filtering
  3. graceful shutdown
  4. log persistence

beta: 5. automations 6. artifacts 7. background services 8. mutation endpoints

hardening: 9. rate limiting & auth 10. ui endpoints 11. telemetry