|
| 1 | +# persistence-core-kernel Rust 2018 モジュール再編計画 |
| 2 | + |
| 3 | +## Summary |
| 4 | + |
| 5 | +`modules/persistence-core-kernel/src` 直下に並んでいる永続化関連型を、Pekko の `persistence` |
| 6 | +パッケージ構造を参考に Rust 2018 方式で再配置する。後方互換の root 再エクスポートや旧パス |
| 7 | +fallback は残さず、利用側の `use` も新しいモジュールパスへ書き換える。 |
| 8 | + |
| 9 | +## Key Changes |
| 10 | + |
| 11 | +- `lib.rs` は root バレルではなく、意味のある公開モジュールだけを公開する。 |
| 12 | + - `journal` |
| 13 | + - `snapshot` |
| 14 | + - `state` |
| 15 | + - `persistent` |
| 16 | + - `delivery` |
| 17 | + - `fsm` |
| 18 | + - `extension` |
| 19 | + - `error` |
| 20 | +- `journal` 配下へ journal trait / actor / protocol / event adapter / in-memory journal / plugin proxy を移動する。 |
| 21 | +- `snapshot` 配下へ snapshot model / store / actor / protocol / criteria / in-memory snapshot store を移動する。 |
| 22 | +- `state` 配下へ durable state store 関連型を移動する。 |
| 23 | +- `persistent` 配下へ persistent actor / context / repr / recovery / props / stash overflow 関連型を移動する。 |
| 24 | +- `delivery` 配下へ at-least-once delivery 関連型を移動する。 |
| 25 | +- `fsm` 配下へ `PersistentFsm` を移動する。 |
| 26 | +- `extension` 配下へ persistence extension 関連型を移動する。 |
| 27 | +- `error` 配下へ `PersistenceError` を移動する。 |
| 28 | + |
| 29 | +## Implementation Details |
| 30 | + |
| 31 | +- Rust 2018 モジュール方式で作る。 |
| 32 | + - `journal.rs` + `journal/*.rs` |
| 33 | + - `snapshot.rs` + `snapshot/*.rs` |
| 34 | + - `state.rs` + `state/*.rs` |
| 35 | + - `persistent.rs` + `persistent/*.rs` |
| 36 | + - `delivery.rs` + `delivery/*.rs` |
| 37 | + - `fsm.rs` + `fsm/*.rs` |
| 38 | + - `extension.rs` + `extension/*.rs` |
| 39 | + - `error.rs` + `error/*.rs` |
| 40 | + - `mod.rs` は作らない。 |
| 41 | +- 旧 root パスは削除する。 |
| 42 | + - `fraktor_persistence_core_kernel_rs::Journal` は使えなくする。 |
| 43 | + - 正は `fraktor_persistence_core_kernel_rs::journal::Journal`。 |
| 44 | + - `SnapshotStore` は `snapshot::SnapshotStore`。 |
| 45 | + - `PersistentActor` は `persistent::PersistentActor`。 |
| 46 | + - `PersistenceExtension` は `extension::PersistenceExtension`。 |
| 47 | + - `PersistenceError` は `error::PersistenceError`。 |
| 48 | +- crate 内部と外部利用側の `use` を新パスへ置換する。 |
| 49 | +- sibling test 配置は維持する。 |
| 50 | + |
| 51 | +## Test Plan |
| 52 | + |
| 53 | +- `cargo fmt --check` |
| 54 | +- `cargo test -p fraktor-persistence-core-kernel-rs -- --nocapture` |
| 55 | +- `cargo test -p fraktor-persistence-core-typed-rs -- --nocapture` |
| 56 | +- `cargo test -p fraktor-persistence-core-kernel-rs --tests -- --nocapture` |
| 57 | +- 必要なら最終確認で `./scripts/ci-check.sh ai all` |
| 58 | + |
| 59 | +## Assumptions |
| 60 | + |
| 61 | +- 後方互換性は維持しない。 |
| 62 | +- 旧パスへの fallback / deprecated re-export は作らない。 |
| 63 | +- 目的は機能追加ではなく、Pekko 互換の概念境界に沿った見通し改善。 |
| 64 | +- `persistence-core-typed` 固有の対策は kernel の構造には混ぜない。 |
| 65 | +- `persistence-core-typed` 自体のパッケージ再設計は今回の主対象外で、import 追従だけ行う。 |
0 commit comments