{ "version": "1.1", "id": "messaging-reliability-api-f02", "title": "검증이 닿은 범위", "question": "신세대 펜싱 경로를 실제로 실행하는 것은 무엇인가?", "type": "dependency", "direction": "LR", "audience": [ "메시징 신뢰성 API 를 읽는 사람" ], "summary": "신세대 펜싱 경로를 실행하는 것은 SQL 없는 in-memory fake 뿐이고 실 DB 경로는 실행되지 않는다.", "alt": "신세대 펜싱 경로에서 in-memory fake 로 실선이, 실 DB 펜싱 경로로 점선이 간다. 실 DB 경로만 영향 행 수 판정에 닿는다.", "long_description": "SSOT 는 신세대를 쓰는 테스트가 InMemoryOutboxRepository 와 RecordingRepository — SQL 이 없는 fake — 뿐이라고 적는다. STALE_LEASE 는 조건부 UPDATE 의 영향 행 수가 0 인 데서 나오고 그것은 SQL 의 성질이므로, 이중 발행을 막는 장치가 그것을 검증할 수 있는 유일한 환경에서 실행되지 않는다.", "source_context": { "document": "docs/clean-architecture-backend-template/final/document.md", "document_sha256": "8071fe71b3359d9cf60b95909c26c7b50653ce2f22bbc5fcf6988719bb91236d", "anchor": { "kind": "line", "value": 34499, "line": 34499 } }, "composition": { "profile": "component-flow", "diagram_only": true, "reference_ids": [ "payment-event-flow" ], "rationale": "펜싱 경로에서 두 검증 환경으로 갈리고 한쪽만 실행된다. 그 갈림이 논지다.", "focus_node": "fencing" }, "groups": [], "nodes": [ { "id": "fencing", "label": "신세대 펜싱 경로", "kind": "service", "role": "source", "evidence": [ { "start_line": 34501, "end_line": 34501 } ], "assumption": false, "emphasis": "primary" }, { "id": "fake", "label": "in-memory fake", "kind": "test", "role": "sink", "evidence": [ { "start_line": 34501, "end_line": 34501 } ], "assumption": false }, { "id": "realdb", "label": "실 DB 펜싱 경로", "kind": "database", "role": "sink", "evidence": [ { "start_line": 34503, "end_line": 34503 } ], "assumption": false, "shape": "database" }, { "id": "stale", "label": "STALE_LEASE 판정", "kind": "service", "role": "sink", "evidence": [ { "start_line": 34503, "end_line": 34503 } ], "assumption": false } ], "edges": [ { "id": "run", "from": "fencing", "to": "fake", "label": "실행", "kind": "request", "evidence": [ { "start_line": 34501, "end_line": 34501 } ], "assumption": false }, { "id": "skip", "from": "fencing", "to": "realdb", "label": "미실행", "kind": "request", "evidence": [ { "start_line": 34503, "end_line": 34503 } ], "assumption": false, "style": "dashed", "emphasis": "primary" }, { "id": "rows", "from": "realdb", "to": "stale", "label": "영향 행 수 0", "kind": "data", "evidence": [ { "start_line": 34503, "end_line": 34503 } ], "assumption": false } ], "legend": [], "metadata": {} }