Skip to content

Commit 3d519fc

Browse files
authored
Merge pull request #1780 from j5ik2o/feat/persistence-effector-typed-api
refactor(persistence): organize kernel modules by package
2 parents 69845a7 + 630cc44 commit 3d519fc

122 files changed

Lines changed: 492 additions & 418 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
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 追従だけ行う。
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
//! At-least-once delivery package.
2+
3+
mod at_least_once_delivery;
4+
mod at_least_once_delivery_config;
5+
mod at_least_once_delivery_snapshot;
6+
mod redelivery_tick;
7+
mod unconfirmed_delivery;
8+
mod unconfirmed_warning;
9+
10+
pub use at_least_once_delivery::AtLeastOnceDelivery;
11+
pub use at_least_once_delivery_config::AtLeastOnceDeliveryConfig;
12+
pub use at_least_once_delivery_snapshot::AtLeastOnceDeliverySnapshot;
13+
pub use redelivery_tick::RedeliveryTick;
14+
pub use unconfirmed_delivery::UnconfirmedDelivery;
15+
pub use unconfirmed_warning::UnconfirmedWarning;

modules/persistence-core-kernel/src/at_least_once_delivery.rs renamed to modules/persistence-core-kernel/src/delivery/at_least_once_delivery.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,10 @@ use fraktor_actor_core_kernel_rs::actor::{actor_ref::ActorRef, messaging::AnyMes
1111
use fraktor_utils_core_rs::{sync::ArcShared, time::TimerInstant};
1212

1313
use crate::{
14-
at_least_once_delivery_config::AtLeastOnceDeliveryConfig,
15-
at_least_once_delivery_snapshot::AtLeastOnceDeliverySnapshot, persistence_error::PersistenceError,
16-
redelivery_tick::RedeliveryTick, unconfirmed_delivery::UnconfirmedDelivery, unconfirmed_warning::UnconfirmedWarning,
14+
delivery::{
15+
AtLeastOnceDeliveryConfig, AtLeastOnceDeliverySnapshot, RedeliveryTick, UnconfirmedDelivery, UnconfirmedWarning,
16+
},
17+
error::PersistenceError,
1718
};
1819

1920
/// At-least-once delivery implementation.

modules/persistence-core-kernel/src/at_least_once_delivery_config.rs renamed to modules/persistence-core-kernel/src/delivery/at_least_once_delivery_config.rs

File renamed without changes.

modules/persistence-core-kernel/src/at_least_once_delivery_config_test.rs renamed to modules/persistence-core-kernel/src/delivery/at_least_once_delivery_config_test.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use core::time::Duration;
22

3-
use crate::at_least_once_delivery_config::AtLeastOnceDeliveryConfig;
3+
use crate::delivery::AtLeastOnceDeliveryConfig;
44

55
#[test]
66
fn config_accessors_return_values() {

modules/persistence-core-kernel/src/at_least_once_delivery_snapshot.rs renamed to modules/persistence-core-kernel/src/delivery/at_least_once_delivery_snapshot.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ mod tests;
66

77
use alloc::vec::Vec;
88

9-
use crate::unconfirmed_delivery::UnconfirmedDelivery;
9+
use crate::delivery::UnconfirmedDelivery;
1010

1111
/// Snapshot of current at-least-once delivery state.
1212
pub struct AtLeastOnceDeliverySnapshot {

modules/persistence-core-kernel/src/at_least_once_delivery_snapshot_test.rs renamed to modules/persistence-core-kernel/src/delivery/at_least_once_delivery_snapshot_test.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use core::{any::Any, time::Duration};
33
use fraktor_actor_core_kernel_rs::actor::actor_ref::ActorRef;
44
use fraktor_utils_core_rs::{sync::ArcShared, time::TimerInstant};
55

6-
use crate::{at_least_once_delivery_snapshot::AtLeastOnceDeliverySnapshot, unconfirmed_delivery::UnconfirmedDelivery};
6+
use crate::delivery::{AtLeastOnceDeliverySnapshot, UnconfirmedDelivery};
77

88
#[test]
99
fn snapshot_accessors_return_values() {

modules/persistence-core-kernel/src/at_least_once_delivery_test.rs renamed to modules/persistence-core-kernel/src/delivery/at_least_once_delivery_test.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,7 @@ use fraktor_utils_core_rs::{
1111
time::TimerInstant,
1212
};
1313

14-
use crate::{
15-
at_least_once_delivery::AtLeastOnceDelivery, at_least_once_delivery_config::AtLeastOnceDeliveryConfig,
16-
redelivery_tick::RedeliveryTick, unconfirmed_delivery::UnconfirmedDelivery,
17-
};
14+
use crate::delivery::{AtLeastOnceDelivery, AtLeastOnceDeliveryConfig, RedeliveryTick, UnconfirmedDelivery};
1815

1916
type MessageStore = ArcShared<SpinSyncMutex<Vec<AnyMessage>>>;
2017

modules/persistence-core-kernel/src/redelivery_tick.rs renamed to modules/persistence-core-kernel/src/delivery/redelivery_tick.rs

File renamed without changes.

modules/persistence-core-kernel/src/unconfirmed_delivery.rs renamed to modules/persistence-core-kernel/src/delivery/unconfirmed_delivery.rs

File renamed without changes.

0 commit comments

Comments
 (0)