Why Prefect?
Trust your pipelines, recover quickly with less downtime, and build new workflows quicker than ever before.
Prefect for Engineers
See inside your pipelines
Trust that your workflows ran, and verify your expectations of your data meet reality.
- Dashboard with relevant information surfaced
- Granular execution graph
- Notifications, alerts, and insights
Deploy anywhere seamlessly
All of your execution environments, no matter where they are.
- Configure and develop locally, deploy in production
- Granular control over where your code runs
1# flow.py
2import os
3from prefect import flow
4
5@flow
6def main():
7 if os.cpu_count() <= 2:
8 print("πͺ")
9 else:
10 print("πͺπͺπͺ")
# Deploy to Kubernetes
prefect deploy flow.py:flow --pool kubernetes
# Deploy to staging server
prefect deploy flow.py:flow --pool process-staging
Pure Python
Write the code you want
Stop torturing your code & writing boilerplate.
- Pythonic syntax, including loops and if statements
- Turn any Python function into a @flow
- Support for sync or async work
1from prefect import flow, task
2
3@task
4def add_one(x: int):
5 return x + 1
6
7@flow
8def main():
9 for x in [1, 2, 3]:
10 first = add_one(x)
11 second = add_one(first)
Flexible
Get started easily
Lightweight scheduling when you want it, powerful orchestration when you need it.
1from prefect import flow, get_run_logger
2
3@flow(name="Prefect Cloud Quickstart")
4def quickstart_flow():
5 logger = get_run_logger()
6 logger.warning("Local quickstart flow is running!")
7
8if __name__ == "__main__":
9 quickstart_flow()
Try It Out
Prefect for Stakeholders
Stop wasting time
Your business runs on data, and your data pipelines are powered by complex, brittle workflows. When pipelines break, engineers waste hours in triage.