変更キー処理結果
変更キーごとの処理結果を、転送実行記録と転送先リンクの文脈で記録する概念
defined
validation: okcoverage: completeopen questions none
meaning: presentresponsibilities: presentboundaries: presentinvariants: presentrationale: presentevidence: presentlinked concepts: present
Open Questions
- None
Definition Statements
Meaning
8 statements
| Statement | Text |
|---|---|
変更キーごとの処理結果を記録する概念dirty-key-processing-processed-record-id | 変更キー処理結果とは、処理済みの `変更キー` とその処理結果を記録する概念である。 |
どの Transfer Run で処理されたかを追跡できるdirty-key-processing-transfer-run-trace | Dirty Key Processing は、どの `Transfer Run` で処理されたかを追跡できる。 |
どの Transfer Setting の文脈で処理されたかを追跡できるdirty-key-processing-transfer-setting-context-trace | Dirty Key Processing は、どの `Transfer Setting` の文脈で処理されたかを追跡できる。 |
どの Destination Link の文脈で処理されたかを追跡できるdestination-link-dirty-key-processing-context-trace | Dirty Key Processing は、どの `Destination Link` の文脈で処理されたかを追跡できる。 |
Destination Link ID を持つ必要がある。destination-link-dirty-key-processing-id | Dirty Key Processing は、`Destination Link` ID を持つ必要がある。 |
Work Item の処理結果を記録できるdirty-key-processing-record-work-item | Dirty Key Processing は、`Work Item` の処理結果を記録できる。 |
二重転送防止のために参照される処理済み記録dirty-key-processing-processed-record-reference | Dirty Key Processing は、二重転送防止のために参照される処理済み記録である。 |
Dirty Key Management そのものではない。dirty-key-processing-management | Dirty Key Processing は、`Dirty Key` Management そのものではない。 |
Responsibilities
10 statements
| Statement | Text |
|---|---|
処理済みの Dirty Key ID を記録dirty-key-processing-processed-record-id-2 | Dirty Key Processing は、処理済みの `Dirty Key` ID を記録する。 |
処理した Transfer Run を記録dirty-key-processing-transfer-run-record | Dirty Key Processing は、処理した `Transfer Run` を記録する。 |
処理した Transfer Setting の文脈を記録dirty-key-processing-transfer-setting-context-record | Dirty Key Processing は、処理した `Transfer Setting` の文脈を記録する。 |
処理した Destination Link の文脈を記録destination-link-dirty-key-processing-context-record | Dirty Key Processing は、処理した `Destination Link` の文脈を記録する。 |
Destination Link ID を記録destination-link-dirty-key-processing-record-id | Dirty Key Processing は、`Destination Link` ID を記録する。 |
Work Item の処理結果を記録dirty-key-processing-record-work-item-2 | Dirty Key Processing は、`Work Item` の処理結果を記録する。 |
追加、更新、赤伝追加、削除、無視など、Work Item がどう処理されたかを追跡できるようにdirty-key-processing-red-transfer-trace-work-item | Dirty Key Processing は、追加、更新、赤伝追加、削除、無視など、`Work Item` がどう処理されたかを追跡できるようにする。 |
Work Item を作るときに、処理済み Dirty Key を除外できるようにdirty-key-processing-processed-work-item | Dirty Key Processing は、`Work Item` を作るときに、処理済み `Dirty Key` を除外できるようにする。 |
同じ Dirty Key を同じ Transfer Setting と Destination Link の文脈で二重転送しないための判断材料を提供destination-link-dirty-key-processing-transfer-setting-context | Dirty Key Processing は、同じ `Dirty Key` を同じ `Transfer Setting` と `Destination Link` の文脈で二重転送しないための判断材料を提供する。 |
監査やデバッグで、Dirty Key がどう扱われたかを追跡できるようにdirty-key-processing-trace | Dirty Key Processing は、監査やデバッグで、`Dirty Key` がどう扱われたかを追跡できるようにする。 |
Boundaries
6 statements
| Statement | Text | Similarity negated |
|---|---|---|
Dirty Key Management の変更検知履歴を変更しないnot-dirty-key-processing-change-detection-history-management | Dirty Key Processing は、`Dirty Key` Management の変更検知履歴を変更しない。 | dirty-key |
Dirty Key 自体に処理済み状態を書き込まない。not-dirty-key-processing-processed-state | Dirty Key Processing は、`Dirty Key` 自体に処理済み状態を書き込まない。 | dirty-key |
Dirty Key の登録方法を定義しないnot-dirty-key-processing-define | Dirty Key Processing は、`Dirty Key` の登録方法を定義しない。 | dirty-key |
Work Item の処理結果を作らない。not-dirty-key-processing-work-item | Dirty Key Processing は、`Work Item` の処理結果を作らない。 | dirty-key |
Black Transfer、Red Transfer、Active Black、Lineage の保存形式を定義しないnot-black-transfer-dirty-key-processing-lineage-red | Dirty Key Processing は、`Black Transfer`、`Red Transfer`、`Active Black`、`Lineage` の保存形式を定義しない。 | black-transfer, dirty-key, lineage, red-transfer |
転送 SQL の生成手順や実行手順を定義しないnot-dirty-key-processing-produce-define-sql | Dirty Key Processing は、転送 SQL の生成手順や実行手順を定義しない。 | dirty-key |
Invariants
10 statements
| Statement | Text |
|---|---|
Dirty Key ID を記録dirty-key-processing-record-id | Dirty Key Processing は、`Dirty Key` ID を記録する。 |
Transfer Run を記録dirty-key-processing-transfer-run-record-2 | Dirty Key Processing は、`Transfer Run` を記録する。 |
Destination Link ID を記録destination-link-dirty-key-processing-record-id-2 | Dirty Key Processing は、`Destination Link` ID を記録する。 |
処理結果を記録dirty-key-processing-record | Dirty Key Processing は、処理結果を記録する。 |
Work Item を作るとき、既に Dirty Key Processing に記録されている Dirty Key は処理済みとして除外dirty-key-processing-processed-record-work-item | `Work Item` を作るとき、既に Dirty Key Processing に記録されている `Dirty Key` は処理済みとして除外する。 |
Work Item の処理が終わった後、Dirty Key Processing に Dirty Key ID、Destination Link ID、処理結果、Transfer Run を記録destination-link-dirty-key-processing-transfer-run-record | `Work Item` の処理が終わった後、Dirty Key Processing に `Dirty Key` ID、`Destination Link` ID、処理結果、`Transfer Run` を記録する。 |
Dirty Key 自体には処理済み状態を書き込まない。dirty-key-processed-state | `Dirty Key` 自体には処理済み状態を書き込まない。 |
の処理済み記録は、Transfer Setting と Destination Link の文脈を持つdestination-link-dirty-key-processing-transfer-setting-processed | Dirty Key Processing の処理済み記録は、`Transfer Setting` と `Destination Link` の文脈を持つ。 |
同じ Dirty Key でも、Transfer Setting または Destination Link が異なれば別の Dirty Key Processing として扱われ得るdestination-link-dirty-key-processing-transfer-setting | 同じ `Dirty Key` でも、`Transfer Setting` または `Destination Link` が異なれば別の Dirty Key Processing として扱われ得る。 |
処理済み記録であり、変更検知履歴ではない。dirty-key-processing-processed-change-detection-history-record | Dirty Key Processing は、処理済み記録であり、変更検知履歴ではない。 |
Rationale
4 statements
| Statement | Text |
|---|---|
Dirty Key Is Immutable Change Detectiondirty-key-processing-processed-change-detection-history-record-2 | Dirty Key Is Immutable Change Detection: `Dirty Key` Management は、変更検知履歴としてイミュータブルに扱う。 同じキーに対して複数の `Dirty Key` が追加されてよい。 そのため、どの `Dirty Key` が処理済みかを `Dirty Key` 自体に書き戻してはならない。 Dirty Key Processing は、`Dirty Key` とは別に処理済み記録を持つための概念である。 |
Prevents Duplicate Transferdirty-key-processing-processed-record-prevents-duplicate-transfer | Dirty Key Processing Prevents Duplicate Transfer: `Work Item` は `Dirty Key` から作られる。 しかし、既に処理済みの `Dirty Key` を再び `Work Item` として処理すると、二重転送につながる。 `Work Item` を作るときは、Dirty Key Processing に記録済みの `Dirty Key` を除外する必要がある。 この除外により、`Dirty Key` 自体を変更せずに二重転送を防止できる。 |
Processing Is Destination Link Scopeddestination-link-dirty-key-processing-transfer-run-setting | Processing Is Destination Link Scoped: `Dirty Key` は転送アプリケーション全体で共有される変更検知履歴である。 同じ `Dirty Key` でも、`Transfer Setting` が異なれば処理対象や転送判断は異なり得る。 また、1つの `Transfer Run` は1つの `Transfer Setting` を対象にするが、その `Transfer Setting` は複数の `Destination Link` を持ち得る。 そのため、Dirty Key Processing は `Transfer Setting` だけでなく、`Destination Link` の文脈を持つ必要がある。 `Destination Link` ID がないと、ある `Dirty Key` がどの宛先別設定で処理済みなのかを区別できず、二重転送防止の粒度が粗くなる。 |
Processing Records the Decisionblack-insert-transfer-update-dirty-key-processing-physical | Processing Records the Decision: Dirty Key Processing は、`Dirty Key` が処理済みかどうかだけでなく、`Work Item` がどの結果として処理されたかを追跡できる。 たとえば、無視した、Black Insert Transfer で追加した、Black Update Transfer で更新した、`Red Transfer` で赤伝を追加した、`Red Transfer` 後に Black Insert Transfer した、`Physical Delete Transfer` で物理削除した、などの処理結果を記録できる。 この情報は、監査、デバッグ、二重転送防止に有用である。 |
Internal Links
- None
External Relationships
| Concept | Kind | Reason | Supported by | Evidence |
|---|---|---|---|---|
変更キーdirty-key | depends-on | Dirty Key Processing は処理済みの Dirty Key ID を記録する。 | dirty-key-processing-processed-record-id-2, dirty-key-processing-transfer-run-record, dirty-key-processing-transfer-setting-context-record | spec:dirty-key-processing |
転送実行記録transfer-run | records | Dirty Key Processing はどの Transfer Run が Dirty Key を処理し、どの処理結果になったかを記録する。 | dirty-key-processing-transfer-run-record, dirty-key-processing-transfer-run-record-2, destination-link-dirty-key-processing-transfer-run-record | spec:dirty-key-processing |
転送設定transfer-setting | depends-on | Dirty Key Processing は Transfer Setting の文脈で管理される。 | dirty-key-processing-transfer-setting-context-record, destination-link-dirty-key-processing-transfer-setting-context, destination-link-dirty-key-processing-transfer-setting-processed | spec:dirty-key-processing |
転送先リンクdestination-link | depends-on | Dirty Key Processing は、1つの Transfer Run が複数の Destination Link を処理できるため Destination Link ID を記録する。 | destination-link-dirty-key-processing-context-record, destination-link-dirty-key-processing-record-id, destination-link-dirty-key-processing-transfer-setting-context | spec:dirty-key-processing |
変更キーdirty-key | is-distinct-from | Dirty Key はイミュータブルな変更検知履歴であり、Dirty Key Processing は処理済み状態の記録である。 | dirty-key-processing-processed-record-id-2, dirty-key-processing-transfer-run-record, dirty-key-processing-transfer-setting-context-record | spec:dirty-key-processing |
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:dirty-key-processing | spec | concept.json | yes |
Validation
- No validation issues.
Technical Metadata
- Source JSON:
packages/transfer/docs/concepts/dirty-key-processing/concept.json