# Epic 10 — Orchestration Kernel (Lifecycle, Retry, Replay)

## completed deliverables

### 1. orchestration state and status model

implemented a strict state model for orchestration lifecycle tracking.

final structures:

* `OrchestrationStatus` (enum)
* `OrchestrationState`

key properties:

* immutable status transitions
* explicit lifecycle tracking (IDLE → RUNNING → PAUSED/COMPLETED/FAILED)
* retry count tracking
* pause reason tracking
* pending approval flag
* failure reason tracking

status values:

* IDLE — initial state, awaiting workflow start
* RUNNING — active stage execution
* PAUSED — awaiting approval or user action
* COMPLETED — successful workflow termination
* FAILED — workflow terminated due to error
* CANCELED — workflow terminated due to cancellation

---

### 2. workflow event model

introduced workflow lifecycle events as the orchestration backbone.

final structure:

* `WorkflowStartedEvent` — marks workflow initiation
* `WorkflowCompletedEvent` — marks successful completion
* `WorkflowFailedEvent` — marks failure with reason and retry context

properties:

* explicit lifecycle boundaries
* causality-safe event emission
* retry-exhausted tracking for failure events

---

### 3. orchestration pause/resume events

introduced explicit pause/resume semantics for approval workflows.

final structure:

* `OrchestrationPausedEvent` — marks pause with reason (APPROVAL_PENDING, USER_REQUESTED)
* `OrchestrationResumedEvent` — marks resumption after approval

properties:

* explicit pause reasons for auditability
* stage-aware pause tracking
* deterministic resume semantics

---

### 4. inference state management (read-only projection)

implemented inference state as a read-only projection for auditability.

final structures:

* `InferenceRecord` — immutable inference attempt snapshot
* `InferenceState` — collection of inference records
* `InferenceReducer` / `DefaultInferenceReducer`
* `InferenceProjector`
* `InferenceRepository`

key properties:

* append-only inference history
* per-request tracking (requestId, providerId, stageId)
* status tracking (started, completed, failed, timed out)
* token usage and latency recording
* failure reason persistence

---

### 5. retry coordination system

implemented deterministic retry logic with exponential backoff support.

final structures:

* `RetryPolicy` — configures maxAttempts and backoffMs
* `RetryCoordinator` / `DefaultRetryCoordinator`
* `RetryAttemptedEvent` — audit trail for retry attempts

key properties:

* attempt-based retry control
* configurable backoff delays
* event-emitted retry tracking
* failure reason preservation

---

### 6. replay orchestrator (deterministic execution)

implemented deterministic replay for testing and audit scenarios.

final structures:

* `ReplayOrchestrator` — concrete implementation of `SessionOrchestrator`
* `ReplayInferenceProvider` — artifact-based inference
* `ReplayArtifactMissingException` — replay failure signal
* `ReplayStrategy` — SkipInference, SkipValidation, Full

key properties:

* bypasses live inference, uses recorded artifacts
* deterministic output for testing
* strategy-configurable replay depth
* exception-based artifact missing detection

---

### 7. session orchestrator abstraction

implemented abstract base for orchestration implementations.

final structures:

* `SessionOrchestrator` (abstract) — base interface
* `DefaultSessionOrchestrator` — concrete implementation

key properties:

* unified stage execution model
* inference routing integration
* validation pipeline integration
* approval engine integration
* event emission abstraction
* cancellation support

---

### 8. stage execution and outcome model

implemented stage execution result types for orchestration decisions.

final structure:

* `StageOutcome` (sealed interface, renamed from StageExecutionResult)
  * `Success` — stage completed with artifact
  * `ValidationFailure` — validation failed, retryable flag
  * `InferenceFailure` — inference failed, retryable flag
  * `ApprovalRequired` — approval pending
  * `Cancelled` — stage cancelled

properties:

* outcome-based decision making
* retryability metadata
* artifact capture for replay

---

### 9. orchestration configuration

introduced configurable orchestration parameters.

final structure:

* `OrchestrationConfig`

key properties:

* `retryPolicy` — RetryPolicy instance
* `replayStrategy` — ReplayStrategy instance
* `stageTimeoutMs` — per-stage timeout configuration

---

### 10. serialization system (orchestration events)

registered all orchestration events in the serialization module.

components:

* `Serialization.kt` in `:core:events`
* 6 new orchestration events registered:
  * `WorkflowStartedEvent`
  * `WorkflowCompletedEvent`
  * `WorkflowFailedEvent`
  * `OrchestrationPausedEvent`
  * `OrchestrationResumedEvent`
  * `RetryAttemptedEvent`

* `InferenceStatus` — `TIMED_OUT` added

---

### 11. testing fixtures (extended)

extended test fixtures for comprehensive coverage.

components:

* `TransitionFixtures`
* `InferenceFixtures`
* `ContextFixtures`
* `ValidationFixtures`

---

# final architecture after Epic 10

```text id="e10"
Orchestration Kernel
├── SessionOrchestrator (abstract base)
│   ├── DefaultSessionOrchestrator
│   └── ReplayOrchestrator
│
├── State Management
│   ├── OrchestrationState
│   ├── InferenceState
│   └── Event Replayer
│
├── Retry System
│   ├── RetryPolicy
│   ├── RetryCoordinator
│   └── DefaultRetryCoordinator
│
└── Replay Support
    ├── ReplayStrategy
    ├── ReplayInferenceProvider
    └── ReplayArtifactMissingException
```

---

# major architectural outcomes

Epic 10 established:

* orchestration lifecycle management
* deterministic replay capability
* retry coordination with audit trail
* inference state projection
* stage outcome model
* orchestrator abstraction layer
* pause/resume semantics

---

# what Epic 10 intentionally does NOT include

not implemented:

* live inference providers (replay only)
* approval workflow execution (abstraction only)
* stage timeout enforcement (config only)
* context budget enforcement (TODO epic-11)
* risk model integration (TODO epic-11)

those are explicitly deferred to Epic 11+

---

# final state

Correx now has:

> a complete orchestration kernel with lifecycle management, retry coordination, deterministic replay, and inference state projection, enabling both live execution and reproducible test scenarios.
