Why Prefect?

Trust your pipelines, recover quickly with less downtime, and see your entire data stack.

See inside your pipelines

Trust that your pipelines ran, and verify your expectations of your data meet reality.

alt
A snapshot of the Prefect Dashboard, showing a summary of orchestration activity.

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
alt
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
alt
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.

alt
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

Claim your free Prefect Cloud account
Get started with open-source