Prefect
Prefect is a workflow orchestration framework for building data pipelines in Python. It elevates scripts into production workflows with features like scheduling, caching, retries, and event-based automations. It is for data teams who need to automate and monitor data processes.
✨ Key features
- Build resilient, dynamic data pipelines in Python
- Schedule workflows with cron or intervals
- Automatic retries and caching for reliability
- Event-based automations trigger workflows
- Track activity with self-hosted server or Prefect Cloud
- Simple decorators to turn functions into flows and tasks
🎯 Use cases
- Automate data ingestion and transformation pipelines
- Schedule recurring data processing jobs
- Orchestrate complex workflows with branching and dependencies
- Monitor and observe workflow runs via UI
- Trigger workflows in response to external events
📦 Installation
🧰 Requirements: Python 3.10+ required. No API keys needed for local server; Prefect Cloud optional.
pip install -U prefect
or
uv add prefect
🚀 Usage
from prefect import flow, task
import httpx
@task(log_prints=True)
def get_stars(repo: str):
url = f"https://api.github.com/repos/{repo}"
count = httpx.get(url).json()["stargazers_count"]
print(f"{repo} has {count} stars!")
@flow(name="GitHub Stars")
def github_stars(repos: list[str]):
for repo in repos:
get_stars(repo)
if __name__ == "__main__":
github_stars(["PrefectHQ/prefect"])
❓ FAQ
What Python versions are supported?
Prefect requires Python 3.10 or higher.
How do I install Prefect?
You can install it with pip install -U prefect or uv add prefect.
How can I schedule a workflow?
Turn your flow into a deployment using the .serve() method with a cron schedule, as shown in the README.
Can I monitor workflow runs?
Yes, you can start a local Prefect server with 'prefect server start' and view the UI at http://localhost:4200, or use Prefect Cloud.
📊 Repository
🤖 Overview, features, install steps and FAQ were generated from the project's README on Sep 4, 2026. Always check the original source before running commands.