Write Python. Ship Python.

The workflow orchestration framework for Python. From script to scale in a single decorator.

7.8M+ downloads/mo
21k+ stars
639+ contributors
New release 1 day ago

Trusted in Production

Cash App
Washington Nationals
WHOOP
Cisco
1Password
Dutch
NASA
CoinList
Ashby
Square
Meta
Barstool Sports

Python orchestration

Just add a decorator.

Run your existing Python code as-is. No rigid DAG structures, no custom DSLs—Prefect fits how you already work.

See how it works
etl_pipeline.py
def process_data():
data = extract()
transform(data)
load(data)
Status--:--
Waiting
State Tracking
Auto-retries
Artifacts

Durable Execution

Don't replay. Resume.

Recover from failures instantly without re-running expensive work. Prefect persists results to guarantee exactly-once execution for any Python code—no rewrite required.

Learn about durable execution
Workflow Recovery
Run 1
extract()
transform(data)
load(data)
Retry 1
extract()
transform(data)
load(data)
Retry 2
extract()
transform(data)
load(data)

Observed by default

Debug with a map, not a flashlight

Flat logs miss the big picture. See exactly where tasks failed in the timeline and access the relevant logs instantly—no grepping required.

Explore observability
running
striped-pelican
get-directory
install-deps
clone-repo
build-project
0s
Run Logs
Initializing run environment...

Event-driven Automation

React to anything

Trigger workflows from webhooks, cloud events, or state changes. Prefect's active event bus detects what happens (or doesn't happen) in real-time, so you can stop polling and start acting.

Explore automations

Work Pools

Portable by default

Work pools decouple your code from where it runs. Switch from Docker to Kubernetes to serverless—your workflows don't change.

Learn about work pools
Docker
Kubernetes
ECS
Google Cloud Run
Azure ACI
Modal
Docker
Kubernetes
ECS
Google Cloud Run
Azure ACI
Modal
Docker
Kubernetes
ECS
Google Cloud Run
Azure ACI
Modal
pipeline.py
1@flow
2
def pipeline():
3data = extract()
4transform(data)
5load(data)
No changes

Customer Story

How Snorkel AI runs 1,000+ flows per hour on Prefect OSS

Self-hosted on Kubernetes
Incremental migration
Eliminated custom infrastructure
Read the full case study →

Fully Permissive

Apache 2.0. No surprises.

Fork it. Modify it. Build commercial products on top. The Prefect engine is Apache 2.0—the freedom your team needs, forever.

Read full license
Apache License
Version 2.0, January 2004
Permissions:
✓ Commercial use
✓ Modification
✓ Distribution
✓ Patent use
✓ Private use

The fastest way to deploy Prefect

Prefect Cloud is a managed, high-availability deployment of Prefect OSS. Same developer experience, turnkey data platform.