Prefect Logo

Modern Workflow Orchestration

Stop fighting your outdated orchestration tools. Transform your Python code into resilient workflows that deliver reliable results—even in the face of unexpected issues.

See how Prefect visualizes Python workflows 👇

Develop Without Limits

Give your team the power to build reliable workflows without sacrificing development speed. Prefect Core combines the freedom of pure Python development with production-grade resilience, putting you in control of your data operations. Transform your code into scalable workflows that deliver consistent results.

100% Open Source

Join a thriving community of data engineers and contributors. Prefect Core is Apache v2.0 licensed, giving you complete freedom to use, modify, and extend it to meet your needs.

Join our active community and start building!

alt

Ship from Anywhere

Spin up your own orchestration server for development with one command.

This makes local development a breeze, with seamless deployment to production. You're in control of your deployment strategy.

alt
1$ prefect server start
2 ___ ___ ___ ___ ___ ___ _____ 
3| _ \ _ \ __| __| __/ __|_   _| 
4|  _/   / _|| _|| _| (__  | |  
5|_| |_|_\___|_| |___\___| |_|  
6
7Configure Prefect to communicate with the server with:
8
9    prefect config set PREFECT_API_URL=http://127.0.0.1:4200/api
10
11View the API reference documentation at http://127.0.0.1:4200/docs
12
13Check out the dashboard at http://127.0.0.1:4200

Write Code Your Way

Let Prefect handle the orchestration. Just add a decorator and your Python code is production-ready. No complex configurations. No DAGs required.

Write workflows in pure Python, deploy them anywhere, and monitor everything.

alt
1from prefect import flow
2
3@flow
4def my_favorite_function():
5    print("What is your favorite number?")
6    return 42
7
8print(my_favorite_function())
$ python hello_prefect.py
15:27:42.543 | INFO    | prefect.engine - Created flow run 
   for flow 'my-favorite-function'
What is your favorite number?
15:27:42.652 | INFO    | Finished in state Completed()
42

Accelerate Deployment

Start orchestrating with a single decorator, and take your workflow to production without building unnecessary abstractions.

  • Native Python development - no DSLs
  • Conditional logic and dynamic execution
  • Local testing and debugging
  • Minimal code changes for production
alt

Built-in Reliability

Get automatic retries, state management, and real-time monitoring. Know exactly what's happening with your workflows.

  • Automatic retries and failure handling
  • State management and caching
  • Real-time monitoring and alerts
  • Detailed execution logging
alt
flow.py
1@write_file.on_rollback
2def del_file(transaction):
3    "Deletes file."
4    os.unlink("side-effect.txt")
5
6@flow
7def pipeline(contents: str):
8    with transaction():
9        write_file(contents)
10        sleep(2) # sleeping to give you a chance to see the file
11        quality_test()
12
13
14if __name__ == "__main__":
15    pipeline(contents="hello world")

Scale with Confidence

Run workflows anywhere, scale horizontally, and optimize resources dynamically as your needs grow.

  • Run locally or in production
  • Scale horizontally as needed
  • Infrastructure as code
  • Container support
altPrefect Dashboard

Join the Community