# Issue #38: 状態管理

**Phase:** 2d
**優先度:** 中
**依存関係:** #05 (pipeline関数)
**見積もり:** 4日

---

## 概要

パイプライン実行の状態を永続化し、再実行やレジューム機能を提供します。
実行履歴の追跡と障害からの復旧を可能にします。

---

## 主な機能

### 状態永続化
- 実行履歴の保存 (SQLite / PostgreSQL / Redis)
- 各ノードの入出力保存 (オプション)
- エラー時のスタックトレース保存
- タイムスタンプ記録

### 再実行機能
- 失敗したパイプラインの再実行
- 特定ノードからのレジューム
- べき等性の保証

### クエリ機能
- 実行履歴の検索
- 失敗率の統計
- 実行時間トレンド分析

---

## データモデル

```python
@dataclass
class PipelineExecution:
    """パイプライン実行記録."""
    id: str
    pipeline_name: str
    status: str  # pending/running/success/failure
    started_at: datetime
    completed_at: Optional[datetime]
    nodes: List[NodeExecution]
    error: Optional[str]

@dataclass
class NodeExecution:
    """ノード実行記録."""
    node_name: str
    status: str
    started_at: datetime
    completed_at: Optional[datetime]
    input_data: Optional[Any]
    output_data: Optional[Any]
    error: Optional[str]
```

---

## 技術スタック

- SQLAlchemy (ORM)
- SQLite (デフォルト)
- PostgreSQL (本番推奨)
- Redis (キャッシュ層、オプション)
