Enterprise-Grade Workflow Orchestration for Python
Project description
AirFlan
Enterprise-Grade Workflow Orchestration for Python
AirFlan is a lightweight, modular, and robust workflow orchestrator designed for building complex data pipelines with ease. It combines a simple Pythonic API with powerful enterprise features like parallel execution, caching, retries, and a state-of-the-art monitoring dashboard.
Features
- DAG Orchestration: Automatically resolves dependencies and executes tasks in topological order.
- Parallel Execution: True parallel task processing using thread pools.
- Robust Error Handling: Built-in retries, timeouts, and error propagation.
- Smart Caching: Avoid redundant computation with result caching.
- Context Sharing: Thread-safe data passing between tasks.
- Enterprise UI: A professional, minimalist dashboard for real-time monitoring and visualization.
- Modular Architecture: Extensible design with pluggable executors and storage backends.
Installation
-
Clone the repository:
git clone https://github.com/yourusername/airflan.git cd airflan
-
Install dependencies:
pip install -r requirements.txt
Local Development (Editable Install)
If you want to use AirFlan in another project locally without publishing to PyPI:
- Navigate to your other project's directory.
- Install AirFlan in editable mode:
pip install -e /path/to/cloned/airflan
(Replace/path/to/cloned/airflanwith the actual path to this repository)
Quick Start
Define your workflow using the simple decorator API:
from airflan import WorkflowOrchestrator, WorkflowContext
# Initialize
wf = WorkflowOrchestrator(name="data_pipeline")
# Define Tasks
@wf.task(name="extract")
def extract_data():
return [1, 2, 3]
@wf.task(name="process", depends_on=["extract"])
def process_data(context: WorkflowContext):
# Access upstream data or shared context
return "Processed"
# Run
if __name__ == "__main__":
wf.run(parallel=True, enable_ui=True)
Monitoring Dashboard
AirFlan includes a professional real-time monitoring dashboard built with Streamlit.
To launch the UI, simply run your workflow with enable_ui=True. The dashboard provides:
- Interactive DAG: Visualize your workflow structure.
- Real-time Metrics: Track running, completed, and failed tasks.
- Execution Logs: Live stream of task logs.
- Performance Stats: Task duration and status distribution.
Project Structure
AirFlan/
├── airflan/ # Core Library
│ ├── core/ # Task, Scheduler, Executor, Context
│ ├── storage/ # Cache & State Management
│ └── orchestrator.py # Main Entry Point
├── air_flan_ui.py # Monitoring Dashboard
├── demo_workflow.py # Example Enterprise Pipeline
└── requirements.txt # Dependencies
Advanced Usage
Check out docs/how_to.md for detailed guides on:
- Sequential vs. Parallel Execution
- Context Management
- Retry Policies & Timeouts
- Result Caching
License
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file airflan_workflow-0.1.2.tar.gz.
File metadata
- Download URL: airflan_workflow-0.1.2.tar.gz
- Upload date:
- Size: 19.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4c3bc08ddd6294bc801e1aeea25410963cd49a580e6e2ffc6008cb868cea1c61
|
|
| MD5 |
c26aeb5e0be4ac5d4f4600a1ee504a98
|
|
| BLAKE2b-256 |
adb6f86f5577acf6645d3f6e44941c422ff51cf1f7460d953d2a9dc779923be3
|
File details
Details for the file airflan_workflow-0.1.2-py3-none-any.whl.
File metadata
- Download URL: airflan_workflow-0.1.2-py3-none-any.whl
- Upload date:
- Size: 21.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
206e16c8812b0ceca09ed6c33dd9ed8d18412849eebc1219750f54a4242df417
|
|
| MD5 |
0ec252e35eb810c68c663111819a4568
|
|
| BLAKE2b-256 |
efeaff53b206c617532063e3d563c1308caa7a09773b6dda8f07e67a899575ed
|