転送作業対象
変更キーを転送設定の文脈で固定化し、転送対象判定に必要な文脈と判定結果を運ぶ作業対象
defined
validation: okcoverage: completeopen questions none
meaning: presentresponsibilities: presentboundaries: presentinvariants: presentrationale: presentevidence: presentlinked concepts: present
Open Questions
- None
Definition Statements
Meaning
10 statements
| Statement | Text |
|---|---|
Dirty Key から固定化された転送作業対象dirty-key-work-item-target | Work Item とは、`Dirty Key` から固定化された転送作業対象である。 |
Dirty Key そのものではない。dirty-key-work-item | Work Item は、`Dirty Key` そのものではない。 |
Dirty Key を特定の Transfer Setting の文脈で評価dirty-key-transfer-setting-context-work-item | Work Item は、`Dirty Key` を特定の `Transfer Setting` の文脈で評価する。 |
必要に応じて Transfer Setting と Destination Link の文脈で評価される。destination-link-transfer-setting-context-work-item | Work Item は、必要に応じて `Transfer Setting` と `Destination Link` の文脈で評価される。 |
固定化されただけでは転送に使えない。転送対象判定が必要decide-work-item | Work Item は、固定化されただけでは転送に使えない。転送対象判定が必要である。 |
Dirty Key、転送元の現在値、Active Black、Destination の transfer model を転送対象判定の文脈として持つdestination-dirty-key-source-decide-active-black-transfer | Work Item は、`Dirty Key`、転送元の現在値、`Active Black`、`Destination` の transfer model を転送対象判定の文脈として持つ。 |
転送対象判定の結果として転送要否と転送表現候補を保持できるdecide-transfer-model-route-work-item | Work Item は、転送対象判定の結果として転送要否と転送表現候補を保持できる。 |
同じ Transfer Setting、Destination Link、source key の文脈で重複 Dirty Key を判定できる必要があるdestination-link-dirty-key-transfer-setting-context-source | Work Item は、同じ `Transfer Setting`、`Destination Link`、`source key` の文脈で重複 `Dirty Key` を判定できる必要がある。 |
処理済みかどうかを Dirty Key へ書き戻さない。dirty-key-processed-work-item | Work Item は、処理済みかどうかを `Dirty Key` へ書き戻さない。 |
Work Item の処理済み記録は、Dirty Key Processing に残す。dirty-key-processing-processed-record-work-item | Work Item の処理済み記録は、`Dirty Key Processing` に残す。 |
Responsibilities
11 statements
| Statement | Text |
|---|---|
Dirty Key から処理対象を固定化dirty-key-target-work-item | Work Item は、`Dirty Key` から処理対象を固定化する。 |
どの Dirty Key に由来するかを追跡できる必要がある。dirty-key-trace-work-item | Work Item は、どの `Dirty Key` に由来するかを追跡できる必要がある。 |
どの Transfer Setting の文脈で判断されたかを追跡できる必要がある。transfer-setting-context-trace-decide-work-item | Work Item は、どの `Transfer Setting` の文脈で判断されたかを追跡できる必要がある。 |
必要に応じてどの Destination Link の文脈で判断されたかを追跡できる必要がある。destination-link-context-trace-decide-work-item | Work Item は、必要に応じてどの `Destination Link` の文脈で判断されたかを追跡できる必要がある。 |
転送元の現在値が存在するかどうかを判断材料として保持できる必要がある。source-hold-exists-decide-work-item | Work Item は、転送元の現在値が存在するかどうかを判断材料として保持できる必要がある。 |
Active Black が存在するかどうかを判断材料として保持できる必要がある。hold-exists-decide-active-black-work-item | Work Item は、`Active Black` が存在するかどうかを判断材料として保持できる必要がある。 |
transfer model を転送対象判定の入力文脈として持つdecide-transfer-model-work-item | Work Item は、transfer model を転送対象判定の入力文脈として持つ。 |
Transfer Execution が転送対象判定の結果に従って転送表現を実行できるようにblack-insert-transfer-update-physical-delete-red-execution | Work Item は、`Transfer Execution` が転送対象判定の結果に従って `Black Transfer`、`Red Transfer`、`Physical Delete Transfer`、または no-op を実行できるようにする。 |
Dirty Key Processing を参照して処理済み Dirty Key を除外できる必要がある。dirty-key-processing-processed-reference-work-item | Work Item は、`Dirty Key Processing` を参照して処理済み `Dirty Key` を除外できる必要がある。 |
同じ Transfer Setting、Destination Link、source key の文脈で重複する Dirty Key を無視する判断を持てる必要があるdestination-link-dirty-key-transfer-setting-context-decide | Work Item は、同じ `Transfer Setting`、`Destination Link`、`source key` の文脈で重複する `Dirty Key` を無視する判断を持てる必要がある。 |
Work Item の処理が終わった後、Dirty Key Processing に処理済み記録を残せる必要がある。dirty-key-processing-processed-record-work-item-2 | Work Item の処理が終わった後、`Dirty Key Processing` に処理済み記録を残せる必要がある。 |
Boundaries
7 statements
| Statement | Text | Similarity negated |
|---|---|---|
Dirty Key Management の変更検知履歴を変更しないnot-dirty-key-change-detection-history-management-work | Work Item は、`Dirty Key` Management の変更検知履歴を変更しない。 | dirty-key |
Dirty Key 自体に処理済み状態を書き込まない。not-dirty-key-processed-state-work-item | Work Item は、`Dirty Key` 自体に処理済み状態を書き込まない。 | dirty-key |
Dirty Key の登録方法を定義しないnot-dirty-key-define-work-item | Work Item は、`Dirty Key` の登録方法を定義しない。 | dirty-key |
Transfer Run の実行引数記録兼プロセスヘッダーを代替しないnot-transfer-run-arguments-record-work-item | Work Item は、`Transfer Run` の実行引数記録兼プロセスヘッダーを代替しない。 | transfer-run |
Dirty Key Processing の処理済み記録を代替しないnot-dirty-key-processing-processed-record-work-item | Work Item は、`Dirty Key Processing` の処理済み記録を代替しない。 | dirty-key, dirty-key-processing |
Black Transfer、Red Transfer、Active Black、Lineage の保存形式を定義しないnot-black-transfer-lineage-red-define-active-work | Work Item は、`Black Transfer`、`Red Transfer`、`Active Black`、`Lineage` の保存形式を定義しない。 | black-transfer, lineage, red-transfer |
転送 SQL の生成手順や実行手順を定義しないnot-produce-define-sql-work-item | Work Item は、転送 SQL の生成手順や実行手順を定義しない。 | - |
Invariants
12 statements
| Statement | Text |
|---|---|
Dirty Key を固定化して作られる。dirty-key-work-item-2 | Work Item は、`Dirty Key` を固定化して作られる。 |
少なくとも1つの Dirty Key に由来dirty-key-work-item-3 | Work Item は、少なくとも1つの `Dirty Key` に由来する。 |
Dirty Key の処理済み状態を Dirty Key Management に書き戻さない。dirty-key-processed-state-management-work-item | Work Item は、`Dirty Key` の処理済み状態を `Dirty Key` Management に書き戻さない。 |
Dirty Key Processing にある Dirty Key を処理済みとして除外dirty-key-processing-processed-work-item | Work Item は、`Dirty Key Processing` にある `Dirty Key` を処理済みとして除外する。 |
同じ Transfer Setting、Destination Link、source key の文脈で既に同じ判定結果として扱われた重複 Dirty Key を無視できるdestination-link-dirty-key-transfer-setting-context-decide-2 | Work Item は、同じ `Transfer Setting`、`Destination Link`、`source key` の文脈で既に同じ判定結果として扱われた重複 `Dirty Key` を無視できる。 |
Work Item の処理済み記録は、Dirty Key Processing に残す。dirty-key-processing-processed-record-work-item-3 | Work Item の処理済み記録は、`Dirty Key Processing` に残す。 |
同じ Dirty Key でも、Transfer Setting が異なれば転送対象判定の結果は異なり得る。dirty-key-transfer-setting-decide-work-item | 同じ `Dirty Key` でも、`Transfer Setting` が異なれば転送対象判定の結果は異なり得る。 |
同じ Dirty Key でも、Destination Link や transfer model が異なれば転送対象判定の結果は異なり得るdestination-link-dirty-key-decide-transfer-model-work | 同じ `Dirty Key` でも、`Destination Link` や transfer model が異なれば転送対象判定の結果は異なり得る。 |
Dirty Key だけで転送判断を決めない。dirty-key-decide-work-item | Work Item は、`Dirty Key` だけで転送判断を決めない。 |
転送元の現在値、Active Black、Destination の transfer model を転送対象判定の材料として扱うdestination-source-decide-active-black-transfer-model-work | Work Item は、転送元の現在値、`Active Black`、`Destination` の transfer model を転送対象判定の材料として扱う。 |
転送対象判定の結果を持つtransfer-execution-decide-route-work-item | Work Item は、転送対象判定の結果を持つ。これがない場合、`Transfer Execution` はどの転送表現を成立させるべきかを判断できない。 |
Transfer Execution は、Work Item に保持された転送対象判定の結果を実行するtransfer-execution-work-item-immutable-route-mutable | `Transfer Execution` は、Work Item に保持された転送対象判定の結果をもとに、必要な転送操作だけを成立させる。 |
Rationale
5 statements
| Statement | Text |
|---|---|
Dirty Key Must Be Fixed Before Transferdirty-key-transfer-execution-change-detection-history-target | Dirty Key Must Be Fixed Before Transfer: `Dirty Key` Management は、変更検知履歴として常に追記され続ける。 `Dirty Key` は、同じキーに対して複数回記録されてよい。 そのため、`Transfer Execution` が処理するには、どの `Dirty Key` を今回の作業対象として扱うかを固定化する必要がある。 Work Item は、その固定化された作業対象である。 |
Fixed Dirty Key Still Needs Transfer Target Decisiondestination-dirty-key-source-reference-decide-fixed-still | Fixed Dirty Key Still Needs Transfer Target Decision: `Dirty Key` は変更通知であり、転送操作を表さない。 `Dirty Key` を Work Item として固定化しただけでは、まだ転送に使えない。 Work Item は、転送対象判定に必要な転送元の現在値、`Active Black`、`Destination` の transfer model などの文脈を揃える。具体的な判定式と転送表現候補の正本は `Transfer Target Decision` が所有する。 |
Decision Categories Belong to Transfer Target Decisionblack-insert-transfer-update-dirty-key-physical-delete | Decision Categories Belong to Transfer Target Decision: Work Item は判定対象と判定結果を運ぶが、no-op、追加転送候補、赤伝転送候補、更新転送候補、物理削除転送候補などの分類規則を所有しない。これらの分類は `Transfer Target Decision` と Transfer Execution Process Map が扱う。 |
Dirty Key Does Not Own Processed Statedestination-link-dirty-key-processing-transfer-run-setting | Dirty Key Does Not Own Processed State: `Dirty Key` は変更検知履歴であり、`Transfer Setting` ごとの処理状態ではない。 同じ `Dirty Key` でも、`Transfer Setting` が異なれば転送対象判定の結果は異なり得る。 そのため、`Dirty Key` 自体に処理済みかどうかを書き込んではならない。 Work Item の処理済み記録は、`Dirty Key Processing` に残す。 `Dirty Key Processing` は、`Dirty Key` ID、`Destination Link` ID、処理結果、`Transfer Run` を記録し、`Transfer Setting` と `Destination Link` の文脈で処理済みを追跡できる必要がある。 |
Transfer Execution Uses Work Itemsdirty-key-processing-transfer-execution-processed-state-record | Transfer Execution Uses Work Items: `Transfer Execution` は、Work Item に保持された転送対象判定の結果をもとに、必要な転送操作だけを成立させる。 転送が終わったら、`Transfer Execution` は `Dirty Key Processing` に記録し、Work Item を処理済みとして扱える状態にする必要がある。 これは、同じ Work Item を複数回転送しないためである。 |
Internal Links
- None
External Relationships
| Concept | Kind | Reason | Supported by | Evidence |
|---|---|---|---|---|
変更キーdirty-key | depends-on | Work Item は Dirty Key を転送作業として固定化して作られる。 | dirty-key-target-work-item, dirty-key-trace-work-item, dirty-key-processing-processed-reference-work-item | spec:work-item |
変更キー処理結果dirty-key-processing | uses | Work Item 作成では、同じ setting と destination-link の文脈で Dirty Key Processing 記録がある Dirty Key を除外する。 | dirty-key-processing-processed-reference-work-item, dirty-key-processing-processed-record-work-item-2, dirty-key-processing-processed-work-item | spec:work-item |
転送設定transfer-setting | depends-on | Work Item は Transfer Setting の文脈で転送対象判定に渡される。 | transfer-setting-context-trace-decide-work-item, destination-link-dirty-key-transfer-setting-context-decide, destination-link-dirty-key-transfer-setting-context-decide-2 | spec:work-item |
有効黒伝active-black | uses | Work Item は転送対象判定の入力文脈として Active Black の有無を持つ。 | hold-exists-decide-active-black-work-item, destination-source-decide-active-black-transfer-model-work, destination-dirty-key-source-decide-active-black-transfer | spec:work-item |
転送先仕様destination | uses | Work Item は転送対象判定の入力文脈として Destination の transfer model を持つ。 | decide-transfer-model-work-item, destination-source-decide-active-black-transfer-model-work, destination-link-context-trace-decide-work-item | spec:work-item |
変更キーdirty-key | is-distinct-from | Dirty Key は変更検知履歴であり、Work Item は転送判断を持つ固定化された作業対象である。 | dirty-key-target-work-item, dirty-key-trace-work-item, dirty-key-processing-processed-reference-work-item | spec:work-item |
由来追跡lineage | depends-on | Work Item は重複、再転送、削除相当の判断で Lineage の影響を受けることがある。 | not-black-transfer-lineage-red-define-active-work | spec:work-item |
転送対象判定transfer-target-decision | uses | Work Item は Transfer Target Decision の入力文脈と判定結果を運ぶ。 | destination-dirty-key-source-decide-active-black-transfer, decide-transfer-model-work-item, transfer-execution-decide-route-work-item | spec:work-item |
Coverage
| Area | Coverage | Reason | Resolution criteria |
|---|---|---|---|
definition | complete | concept.json の意味、責務、境界、不変条件、理由を curated statement として移植済み。 | - |
relationships | complete | concept-relationship.json と移行元 concept.json の外部関係を反映済み。 | - |
Evidence
| Evidence ID | Type | Path | Exists |
|---|---|---|---|
spec:work-item | spec | concept.json | yes |
Validation
- No validation issues.
Technical Metadata
- Source JSON:
packages/transfer/docs/concepts/work-item/concept.json