Skip to content

<- Concepts

由来追跡

転送先行と、その転送先行を生成または記録した転送元情報を紐づけ、元ネタと実行文脈を追跡できるようにする概念。
id lineageformat schema v2
defined
validation: okcoverage: completeopen questions none
meaning: presentresponsibilities: presentboundaries: presentinvariants: presentrationale: presentevidence: presentlinked concepts: present

Open Questions

  • None

Definition Statements

Meaning

3 statements

StatementText
転送結果の追跡情報
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

StatementText
転送元の識別
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

StatementTextSimilarity 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

StatementText
転送元から転送先行は 0..N
source-to-destination-zero-to-many
Lineage は、転送元から転送先行への対応を 0..N として扱う。
転送先行から転送元は 0..1
destination-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

StatementText
Black Transfer の source key
black-transfer-source-key-meaning
Black Transfer では、source key は転送元データソースの論理行または再評価単位を識別する。
Red Transfer の source key
red-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 を持ちようがない。
FromKindToReasonEvidence
紐づけ対象が必要
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..N
source-to-destination-zero-to-many
更新、削除、訂正、取消により複数回転送されることが 0..N の理由になるため。spec:lineage
転送先行単位で考える
destination-row-cardinality-axis
explains転送先行から転送元は 0..1
destination-to-source-zero-or-one
cardinality を destination row 単位で見ることが 0..1 の理由になるため。spec:lineage
Transfer Run 参照
reference-transfer-run
supportsTransfer Run に紐づく
belongs-to-transfer-run
Transfer Run を参照できる責務が、必ず Transfer Run に紐づく不変条件を支えるため。spec:lineage
Destination Link 参照
reference-destination-link
supportsDestination Link 文脈に紐づく
belongs-to-destination-link-context
Destination Link の文脈を参照できる責務が、Destination Link 文脈に紐づく不変条件を支えるため。spec:lineage
mutable は履歴として持てない
mutable-overwrite-loses-history
explainsimmutable 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

ConceptKindReasonSupported byEvidence
転送実行記録
transfer-run
recordsLineage は転送先行を生成した Transfer Run を記録する。reference-transfer-run, belongs-to-transfer-runspec:lineage
転送設定
transfer-setting
recordsLineage は転送先行がどの Transfer Setting のもとで生成されたかを記録する。reference-transfer-settingspec:lineage
転送先リンク
destination-link
recordsLineage は転送先行を生成した Destination Link の文脈を記録する。reference-destination-link, belongs-to-destination-link-contextspec:lineage

Coverage

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

Evidence

Evidence IDTypePathExists
spec:lineagespecconcept.jsonyes

Validation

  • No validation issues.

Technical Metadata

  • Source JSON: packages/transfer/docs/concepts/lineage/concept.json

Released under the MIT License.