Skip to main content

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

  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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

airflan_workflow-0.1.2.tar.gz (19.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

airflan_workflow-0.1.2-py3-none-any.whl (21.3 kB view details)

Uploaded Python 3

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

Hashes for airflan_workflow-0.1.2.tar.gz
Algorithm Hash digest
SHA256 4c3bc08ddd6294bc801e1aeea25410963cd49a580e6e2ffc6008cb868cea1c61
MD5 c26aeb5e0be4ac5d4f4600a1ee504a98
BLAKE2b-256 adb6f86f5577acf6645d3f6e44941c422ff51cf1f7460d953d2a9dc779923be3

See more details on using hashes here.

File details

Details for the file airflan_workflow-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for airflan_workflow-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 206e16c8812b0ceca09ed6c33dd9ed8d18412849eebc1219750f54a4242df417
MD5 0ec252e35eb810c68c663111819a4568
BLAKE2b-256 efeaff53b206c617532063e3d563c1308caa7a09773b6dda8f07e67a899575ed

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page