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.
100% Open Source. Build with complete transparency and control.
From laptop to production in one command. Deploy anywhere, scale seamlessly.
Write code your way. Just add a decorator and your code is production-ready.
Development to production in minutes. Ship with confidence.
Automatic retries, monitoring, and failure handling built-in.
Scale horizontally without changing code. Resources adapt to your needs.
See how Prefect visualizes Python workflows 👇
Data Teams Trust Prefect
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!
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.
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.
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
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
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