Skip to main content

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

  1. Clone the repository:

    git clone https://github.com/yourusername/airflan.git
    cd airflan
    
  2. 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:

  1. Navigate to your other project's directory.
  2. Install AirFlan in editable mode:
    pip install -e /path/to/cloned/airflan
    
    (Replace /path/to/cloned/airflan with 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

Metadata

Release files for airflan-workflow 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for airflan-workflow 0.1.2
File Size Uploaded
airflan_workflow-0.1.2.tar.gz 19.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for airflan-workflow 0.1.2
File Interpreter ABI Platform
airflan_workflow-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 40.5 kB

Release files / airflan_workflow-0.1.2.tar.gz

Download URL airflan_workflow-0.1.2.tar.gz
Size 19.2 kB
Tags Source
SHA-256 checksum
How to use checksums
4c3bc08ddd6294bc801e1aeea25410963cd49a580e6e2ffc6008cb868cea1c61
BLAKE2b-256 checksum
How to use checksums
adb6f86f5577acf6645d3f6e44941c422ff51cf1f7460d953d2a9dc779923be3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.7

Release files / airflan_workflow-0.1.2-py3-none-any.whl

Download URL airflan_workflow-0.1.2-py3-none-any.whl
Size 21.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
206e16c8812b0ceca09ed6c33dd9ed8d18412849eebc1219750f54a4242df417
BLAKE2b-256 checksum
How to use checksums
efeaff53b206c617532063e3d563c1308caa7a09773b6dda8f07e67a899575ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.7

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page