@flow / @task |
Yes |
Basics 1--20 |
Core building blocks |
| Subflows |
Yes |
Subflows, Flow of Flows, Complex Pipeline |
Nested @flow calls |
.map() / .submit() |
Yes |
Dynamic Tasks, Advanced Map Patterns |
Fan-out and parallel execution |
| Retries / retry delays |
Yes |
Retries and Hooks, Advanced Retries |
Lists, jitter, condition functions |
| Task caching |
Yes |
Task Caching |
INPUTS, TASK_SOURCE, cache_key_fn |
| Timeouts |
Yes |
Task Timeouts |
timeout_seconds on tasks and flows |
| State hooks |
Yes |
State Handlers, Failure Escalation |
on_failure, on_completion |
allow_failure |
Yes |
Advanced State Handling |
Downstream continues after failure |
| Parameters |
Yes |
Parameterized Flows |
Typed defaults, runtime overrides |
| Results / persistence |
Yes |
Task Results, Result Persistence |
persist_result, result_storage_key |
| Remote result storage |
Yes |
Remote Result Storage |
result_storage=S3Bucket(...) on tasks/flows |
| Artifacts |
Yes |
Markdown Artifacts, Table and Link Artifacts, Progress Artifacts |
Markdown, tables, links, progress tracking in UI |
| Tags |
Yes |
Tags |
Decorator and context-manager |
| Custom run names |
Yes |
Task Run Names, Flow Run Names |
Templates and callables |
| Structured logging |
Yes |
Structured Logging |
get_run_logger(), log_prints |
| Events |
Yes |
Events |
emit_event() |
| Blocks / Secret |
Yes |
Secret Block, Custom Blocks, DHIS2 flows |
Block subclass, SecretStr |
| Variables |
Yes |
Variables and Params |
Variable.get() / set() |
| Concurrency limits (local) |
Yes |
Concurrency Limits |
concurrency() context manager |
| Async tasks/flows |
Yes |
Async Tasks, Concurrent Async, Async Flow Patterns |
asyncio.gather() |
flow.serve() |
Yes |
Flow Serve |
In-process scheduling |
flow.deploy() |
Yes |
Work Pools |
Work pool + worker |
prefect.yaml |
Yes |
Deployments directory |
Declarative deployments |
| Schedules (cron/interval/rrule) |
Yes |
Schedules |
All three schedule types |
prefect.runtime |
Yes |
Runtime Context |
Deployment-aware flows |
| Transactions |
Yes |
Transactions |
transaction() for atomic groups |
| Interactive flows |
Yes |
Interactive Flows |
Mock approval (real pause_flow_run() requires server) |
| Task runners (ThreadPool) |
Yes |
Task Runners |
ThreadPoolTaskRunner |
| Pydantic models |
Yes |
Pydantic Models, Pydantic Validation |
Type-safe data passing |
| S3 storage (prefect-aws) |
Yes |
S3 Parquet Export, DHIS2 GeoParquet Export |
S3Bucket, MinIOCredentials |
| Notification blocks |
Yes |
Notification Blocks |
Built-in blocks (Slack, Teams, Custom Webhook) with notify() interface |
| Webhooks |
Yes |
Webhook Block |
Webhook block for outbound HTTP; inbound webhooks documented |
| Basic auth |
Yes |
Docker Compose stack |
PREFECT_SERVER_API_AUTH_STRING / PREFECT_API_AUTH_STRING |