由来追跡
転送先行と、その転送先行を生成または記録した転送元情報を紐づけ、元ネタと実行文脈を追跡できるようにする概念。
defined
validation: okcoverage: completeopen questions none
meaning: presentresponsibilities: presentboundaries: presentinvariants: presentrationale: presentevidence: presentlinked concepts: present
Open Questions
- None
Definition Statements
Meaning
3 statements
| Statement | Text |
|---|---|
転送結果の追跡情報lineage-is-transfer-result-trace | Lineage は、転送先行と、その転送先行の転送元を紐づける追跡情報である。 |
転送後に存在するexists-after-transfer | Lineage は、転送が実行され、転送先行が生成または記録された場合に存在する。 |
source key と destination row の対応tracks-source-key-to-destination-row | Lineage は、転送時点で参照された source key と、生成された destination row の対応を記録する。 |
Responsibilities
7 statements
| Statement | Text |
|---|---|
転送元の識別identify-source | Lineage は、転送元を識別できる情報を持つ。 |
転送先行の識別identify-destination-row | Lineage は、転送先行を識別できる情報を持つ。 |
Transfer Run 参照reference-transfer-run | Lineage は、どの Transfer Run によって転送されたかを参照できる。 |
Transfer Setting 参照reference-transfer-setting | Lineage は、どの Transfer Setting に基づく転送かを参照できる。 |
Destination Link 参照reference-destination-link | Lineage は、どの Destination Link の文脈で destination row が生成されたかを参照できる。 |
監査とデバッグの追跡trace-for-audit-debug | Lineage は、転送元と転送先行の対応を監査やデバッグで追跡できる形で保持する。 |
転送先行から辿れるdestination-row-starting-point | Lineage は、destination table の行を起点に、その行の source key、Transfer Run、Destination Link をたどれるようにする。 |
Boundaries
8 statements
| Statement | Text | Similarity negated |
|---|---|---|
転送先行なしでは存在しないabsent-before-destination-row | 転送先行が生成または記録されていない場合、Lineage は存在しない。 | work-item, dirty-key |
転送元の現在値ではないnot-current-source-value | Lineage は、転送元行の現在値を表すものではなく、転送元行の現在値を管理しない。 | source-current-value |
転送先行の現在状態ではないnot-destination-current-state | Lineage は転送先行の現在状態を管理しない。 | active-black |
次に転送すべき行を決めないnot-transfer-selection | Lineage は、どの行を次に転送すべきかを決定しない。転送対象かどうかは Transfer Target Decision で判断する。 | work-item |
転送依頼や実行ではないnot-transfer-request-or-execution | Lineage は、転送依頼や転送実行そのものを管理しない。 | transfer-execution, transfer-run |
有効黒伝の選択ではないnot-active-black-selection | Lineage は、赤伝時に参照すべき現在有効な黒を決定しない。現在有効な黒伝の選択は Lineage そのものではなく別の概念で扱う。 | active-black |
mutable の正本ではないnot-mutable-model-ledger | Lineage は mutable transfer model の転送先行を追跡する正本としては扱わない。 | physical-delete-transfer, mutable-transfer-model-log |
一般ログではないnot-generic-log | Lineage は処理ログ一般、監査ログ一般、実行ログ一般ではない。 | audit-log, process-log |
Invariants
6 statements
| Statement | Text |
|---|---|
転送元から転送先行は 0..Nsource-to-destination-zero-to-many | Lineage は、転送元から転送先行への対応を 0..N として扱う。 |
転送先行から転送元は 0..1destination-to-source-zero-or-one | Lineage は、転送先行から転送元への対応を 0..1 として扱う。 |
Transfer Run に紐づくbelongs-to-transfer-run | Lineage は、必ず1つの Transfer Run に紐づく。 |
Destination Link 文脈に紐づくbelongs-to-destination-link-context | Lineage は、必ず1つの Destination Link の文脈に紐づく。 |
対応を保証し値一致は保証しないguarantees-correspondence-not-values | Lineage が保証するのは source key と destination row の対応関係であり、転送元の値スナップショットや現在値との一致ではない。 |
immutable model の概念immutable-model-only | この文書では、Lineage は immutable transfer model の転送時に存在する概念として扱い、mutable transfer model では Lineage を持たないと扱う。 |
Rationale
6 statements
| Statement | Text |
|---|---|
Black Transfer の source keyblack-transfer-source-key-meaning | Black Transfer では、source key は転送元データソースの論理行または再評価単位を識別する。 |
Red Transfer の source keyred-transfer-source-key-meaning | Red Transfer では、source key は反転対象となった既存の転送先行を識別する。 |
紐づけ対象が必要created-result-is-needed | 転送していなければ、紐づける転送先行が存在しない。そのため Lineage は転送対象候補や転送依頼ではなく、転送された結果を追跡するために存在する。 |
更新や取消で複数結果になるupdates-create-multiple-results | 転送元は、更新、削除、訂正、取消により複数回転送されることがあるため、転送元から転送先行への Lineage は 0..N として扱う。 |
転送先行単位で考えるdestination-row-cardinality-axis | Lineage の cardinality は destination row 単位で考えるため、1つの destination row から見た source key は 0..1 として扱う。 |
mutable は履歴として持てないmutable-overwrite-loses-history | mutable transfer model では転送先行を直接更新または削除するため、上書きした時点で転送先行に対する履歴としての Lineage を持ちようがない。 |
Internal Links
| From | Kind | To | Reason | Evidence |
|---|---|---|---|---|
紐づけ対象が必要created-result-is-needed | explains | 転送後に存在するexists-after-transfer | 紐づけ対象となる転送先行が必要であることが、転送後にだけ存在する理由になるため。 | spec:lineage |
紐づけ対象が必要created-result-is-needed | explains | 転送先行なしでは存在しないabsent-before-destination-row | 転送先行がなければ Lineage が存在しない境界を説明するため。 | spec:lineage |
source key と destination row の対応tracks-source-key-to-destination-row | constrains | 対応を保証し値一致は保証しないguarantees-correspondence-not-values | Lineage が記録するものを対応関係に限定し、値一致や値スナップショットまで広げないため。 | spec:lineage |
更新や取消で複数結果になるupdates-create-multiple-results | explains | 転送元から転送先行は 0..Nsource-to-destination-zero-to-many | 更新、削除、訂正、取消により複数回転送されることが 0..N の理由になるため。 | spec:lineage |
転送先行単位で考えるdestination-row-cardinality-axis | explains | 転送先行から転送元は 0..1destination-to-source-zero-or-one | cardinality を destination row 単位で見ることが 0..1 の理由になるため。 | spec:lineage |
Transfer Run 参照reference-transfer-run | supports | Transfer Run に紐づくbelongs-to-transfer-run | Transfer Run を参照できる責務が、必ず Transfer Run に紐づく不変条件を支えるため。 | spec:lineage |
Destination Link 参照reference-destination-link | supports | Destination Link 文脈に紐づくbelongs-to-destination-link-context | Destination Link の文脈を参照できる責務が、Destination Link 文脈に紐づく不変条件を支えるため。 | spec:lineage |
mutable は履歴として持てないmutable-overwrite-loses-history | explains | immutable model の概念immutable-model-only | mutable transfer model では履歴として Lineage を持ちようがないことが、immutable model の概念として扱う理由になるため。 | spec:lineage |
有効黒伝の選択ではないnot-active-black-selection | supports | 転送先行の現在状態ではないnot-destination-current-state | 現在有効な黒伝の選択をしないことが、転送先行の現在状態を管理しない境界を補強するため。 | spec:lineage |
External Relationships
| Concept | Kind | Reason | Supported by | Evidence |
|---|---|---|---|---|
転送実行記録transfer-run | records | Lineage は転送先行を生成した Transfer Run を記録する。 | reference-transfer-run, belongs-to-transfer-run | spec:lineage |
転送設定transfer-setting | records | Lineage は転送先行がどの Transfer Setting のもとで生成されたかを記録する。 | reference-transfer-setting | spec:lineage |
転送先リンクdestination-link | records | Lineage は転送先行を生成した Destination Link の文脈を記録する。 | reference-destination-link, belongs-to-destination-link-context | spec:lineage |
Coverage
| Area | Coverage | Reason | Resolution criteria |
|---|---|---|---|
definition | complete | Lineage の意味、責務、境界、不変条件、理由を concept.json から curated statement として移植済み。 | - |
relationships | complete | concept-relationship.json の Lineage からの外部関係を反映済み。 | - |
Evidence
| Evidence ID | Type | Path | Exists |
|---|---|---|---|
spec:lineage | spec | concept.json | yes |
Validation
- No validation issues.
Technical Metadata
- Source JSON:
packages/transfer/docs/concepts/lineage/concept.json