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.
recommended priority#
mvp production:
- concurrency limits v2
- event filtering
graceful shutdown✓- log persistence
beta: 5. automations 6. artifacts 7. background services 8. mutation endpoints
hardening: 9. rate limiting & auth 10. ui endpoints 11. telemetry