Status: shipped in 0.8.0 via etlantic-airflow.
Orchestrator Plugin¶
An Orchestrator Plugin implements the ETLantic Orchestrator Plugin API for a workflow orchestration platform.
Orchestrator plugins are responsible for coordinating execution of a validated Pipeline Plan. They schedule work, honor dependencies, manage execution lifecycles, and preserve the semantics defined by DPCS without requiring pipeline authors to write orchestrator-specific code.
Purpose¶
An orchestrator plugin is responsible for:
- Executing Pipeline Plans
- Scheduling pipeline steps
- Managing dependency ordering
- Coordinating retries and failures
- Emitting execution events
- Preserving pipeline semantics
It is not responsible for:
- Pipeline modeling
- Contract generation
- Contract loading
- Transformation execution
- Dataframe operations
Transformation execution is delegated to dataframe plugins.
Architecture¶
Pipeline Plan
│
▼
Orchestrator Plugin API
│
┌────┼──────────────┐
▼ ▼ ▼
Local Airflow Dagster
Python Prefect
Every orchestrator consumes the same Pipeline Plan.
Responsibilities¶
Every orchestrator plugin should:
- Load a validated Pipeline Plan
- Respect graph dependencies
- Schedule executable steps
- Coordinate callbacks
- Manage retries
- Collect execution results
- Publish structured diagnostics
Observable pipeline behavior must remain identical regardless of the selected orchestrator.
Plugin Interface¶
Conceptually:
The public SDK may evolve, but orchestrator plugins should expose a consistent execution interface.
Dependency Management¶
The plugin must execute steps only after all required upstream dependencies have completed successfully.
Independent branches may execute concurrently when supported by the runtime.
Capability Declaration¶
Plugins should advertise capabilities such as:
- Scheduling
- Parallel execution
- Retries
- Timeouts
- Event triggers
- Streaming
- Checkpoints
- Compensation
- Approval workflows
Planning verifies these capabilities before execution.
Compilation¶
Many orchestrator plugins compile the Pipeline Plan into a platform-specific artifact before execution.
Examples include:
- Airflow DAGs
- Dagster Definitions
- Prefect Flows
- Argo Workflows
Compilation must preserve pipeline semantics.
Resource Coordination¶
Orchestrator plugins coordinate:
- Dataframe plugins
- Storage plugins
- Resource plugins
- Callback execution
Each specialized plugin retains ownership of its own responsibilities.
Diagnostics¶
Plugins should emit structured events including:
- Pipeline started
- Step started
- Step completed
- Step failed
- Retry
- Pipeline completed
Events should reference stable pipeline and step identities.
Error Handling¶
Backend-specific exceptions should be translated into ETLantic diagnostics.
Diagnostics should preserve:
- Pipeline identity
- Step identity
- Execution phase
- Backend details
- Original exception
Best Practices¶
- Preserve DPCS semantics.
- Respect declared dependencies.
- Advertise capabilities accurately.
- Keep backend details behind the SDK.
- Produce deterministic execution behavior.
Anti-Patterns¶
Avoid:
- Modifying pipeline semantics.
- Executing transformations directly.
- Embedding dataframe logic.
- Ignoring unsupported capabilities.
- Exposing orchestrator APIs through public ETLantic interfaces.
Key Principle¶
An orchestrator plugin coordinates execution of a validated Pipeline Plan on a specific runtime while preserving the portable semantics defined by DPCS. It schedules work; it does not redefine it.
Next Step¶
Continue with STORAGE_PLUGIN.md to learn how ETLantic integrates with persistent storage systems through the Plugin SDK.