Skip to content

<- Concepts

変更キー処理結果

変更キーごとの処理結果を、転送実行記録と転送先リンクの文脈で記録する概念
id dirty-key-processingformat schema v2
defined
validation: okcoverage: completeopen questions none
meaning: presentresponsibilities: presentboundaries: presentinvariants: presentrationale: presentevidence: presentlinked concepts: present

Open Questions

  • None

Definition Statements

Meaning

8 statements

StatementText
変更キーごとの処理結果を記録する概念
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

StatementText
処理済みの 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

StatementTextSimilarity 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

StatementText
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

StatementText
Dirty Key Is Immutable Change Detection
dirty-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 Transfer
dirty-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 Scoped
destination-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 Decision
black-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` で物理削除した、などの処理結果を記録できる。 この情報は、監査、デバッグ、二重転送防止に有用である。
  • None

External Relationships

ConceptKindReasonSupported byEvidence
変更キー
dirty-key
depends-onDirty Key Processing は処理済みの Dirty Key ID を記録する。dirty-key-processing-processed-record-id-2, dirty-key-processing-transfer-run-record, dirty-key-processing-transfer-setting-context-recordspec:dirty-key-processing
転送実行記録
transfer-run
recordsDirty 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-recordspec:dirty-key-processing
転送設定
transfer-setting
depends-onDirty 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-processedspec:dirty-key-processing
転送先リンク
destination-link
depends-onDirty 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-contextspec:dirty-key-processing
変更キー
dirty-key
is-distinct-fromDirty Key はイミュータブルな変更検知履歴であり、Dirty Key Processing は処理済み状態の記録である。dirty-key-processing-processed-record-id-2, dirty-key-processing-transfer-run-record, dirty-key-processing-transfer-setting-context-recordspec:dirty-key-processing

Coverage

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

Evidence

Evidence IDTypePathExists
spec:dirty-key-processingspecconcept.jsonyes

Validation

  • No validation issues.

Technical Metadata

  • Source JSON: packages/transfer/docs/concepts/dirty-key-processing/concept.json

Released under the MIT License.