# FlowDrop Orchestration

Orchestration contracts, plugin system, and helper services for FlowDrop workflow execution.

## API Stability

All PHP classes in this module are `@internal` and not part of the public API. They may change without notice in any release. The orchestrator plugin system is an internal extension point used by FlowDrop's own submodules.

The stable public API for building custom node processors is in the root `flowdrop` module. See the [BC Policy](../../docs/reference/api/bc-policy.md) for details.

## Overview

This module defines the orchestration layer that manages workflow execution. It provides:

- **Orchestrator plugin system** - Pluggable execution strategies (sync, async, stategraph)
- **Helper service** - Orchestrator instance resolution and validation
- **DTOs** - Request/response objects for orchestration
- **Snapshot system** - Immutable workflow state capture for checkpointing and resume

## Services

### OrchestratorHelper

**Service ID:** `flowdrop_orchestration.helper`

Provides orchestrator instance resolution and predefined type constants:

- `SYNCHRONOUS` - `"flowdrop_runtime:synchronous"`
- `SYNCHRONOUS_PIPELINE` - `"flowdrop_runtime:synchronous_pipeline"`
- `ASYNCHRONOUS` - `"flowdrop_runtime:asynchronous"`
- `STATEGRAPH` - `"flowdrop_stategraph:stategraph"`

### OrchestratorPluginManager

**Service ID:** `flowdrop_orchestration.plugin_manager`

Standard Drupal plugin manager. Alter hook: `flowdrop_orchestrator_info`.
