Skip to content

<- Concepts

転送作業対象

変更キーを転送設定の文脈で固定化し、転送対象判定に必要な文脈と判定結果を運ぶ作業対象
id work-itemformat schema v2
defined
validation: okcoverage: completeopen questions none
meaning: presentresponsibilities: presentboundaries: presentinvariants: presentrationale: presentevidence: presentlinked concepts: present

Open Questions

  • None

Definition Statements

Meaning

10 statements

StatementText
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

StatementText
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

StatementTextSimilarity 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

StatementText
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

StatementText
Dirty Key Must Be Fixed Before Transfer
dirty-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 Decision
destination-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 Decision
black-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 State
destination-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 Items
dirty-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 を複数回転送しないためである。
  • None

External Relationships

ConceptKindReasonSupported byEvidence
変更キー
dirty-key
depends-onWork Item は Dirty Key を転送作業として固定化して作られる。dirty-key-target-work-item, dirty-key-trace-work-item, dirty-key-processing-processed-reference-work-itemspec:work-item
変更キー処理結果
dirty-key-processing
usesWork 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-itemspec:work-item
転送設定
transfer-setting
depends-onWork 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-2spec:work-item
有効黒伝
active-black
usesWork 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-transferspec:work-item
転送先仕様
destination
usesWork Item は転送対象判定の入力文脈として Destination の transfer model を持つ。decide-transfer-model-work-item, destination-source-decide-active-black-transfer-model-work, destination-link-context-trace-decide-work-itemspec:work-item
変更キー
dirty-key
is-distinct-fromDirty Key は変更検知履歴であり、Work Item は転送判断を持つ固定化された作業対象である。dirty-key-target-work-item, dirty-key-trace-work-item, dirty-key-processing-processed-reference-work-itemspec:work-item
由来追跡
lineage
depends-onWork Item は重複、再転送、削除相当の判断で Lineage の影響を受けることがある。not-black-transfer-lineage-red-define-active-workspec:work-item
転送対象判定
transfer-target-decision
usesWork Item は Transfer Target Decision の入力文脈と判定結果を運ぶ。destination-dirty-key-source-decide-active-black-transfer, decide-transfer-model-work-item, transfer-execution-decide-route-work-itemspec:work-item

Coverage

AreaCoverageReasonResolution criteria
definitioncompleteconcept.json の意味、責務、境界、不変条件、理由を curated statement として移植済み。-
relationshipscompleteconcept-relationship.json と移行元 concept.json の外部関係を反映済み。-

Evidence

Evidence IDTypePathExists
spec:work-itemspecconcept.jsonyes

Validation

  • No validation issues.

Technical Metadata

  • Source JSON: packages/transfer/docs/concepts/work-item/concept.json

Released under the MIT License.