{ "version": "1.1", "id": "adapter-outbound-notification-c01", "audience": [ "메시징 플랫폼을 읽는 사람" ], "source_context": { "document": "docs/clean-architecture-backend-template/final/document.md", "document_sha256": "8071fe71b3359d9cf60b95909c26c7b50653ce2f22bbc5fcf6988719bb91236d", "anchor": { "kind": "line", "value": 15305, "line": 15305 } }, "groups": [], "legend": [], "metadata": {}, "title": "이름 없던 상태에 이름 붙이기", "question": "공급자 0인 배포는 어떻게 사고와 구분되는가?", "type": "sequence", "direction": "LR", "summary": "공급자 0인 배포를 사고와 구분하려고 INGEST_ONLY 를 명시 선택으로 만들고 조립이 그것을 강제한다.", "alt": "공급자 0인 플랫폼에서 INGEST_ONLY 명시 선택으로 화살표가 가고, 선택이 없으면 조립 거부로 간다.", "long_description": "SSOT 는 INGEST_ONLY 를 명시적으로 선택해야 한다고 적는다 — \"A deployment that reaches zero providers by accident is a misconfiguration, and the whole point of this enum is that the two are told apart\". NotificationProviderAssembly:183 이 그것을 강제해, 경로가 비었는데 모드가 INGEST_ONLY 가 아니면 조립을 거부하고 메시지로 그 모드를 안내한다.", "composition": { "profile": "sequence", "diagram_only": true, "reference_ids": [ "payment-approval-sequence" ], "rationale": "조립이 경로와 모드를 차례로 보고 두 결과로 갈리는 순서가 논지다.", "focus_node": "assembly" }, "nodes": [ { "id": "config", "label": "배포 설정", "kind": "config", "role": "participant", "evidence": [ { "start_line": 15305, "end_line": 15310 } ], "assumption": false }, { "id": "assembly", "label": "NotificationProviderAssembly", "kind": "service", "role": "participant", "evidence": [ { "start_line": 15305, "end_line": 15310 } ], "assumption": false, "emphasis": "primary" }, { "id": "result", "label": "조립 결과", "kind": "service", "role": "participant", "evidence": [ { "start_line": 15305, "end_line": 15310 } ], "assumption": false } ], "edges": [ { "id": "m1", "from": "config", "to": "assembly", "label": "공급자 0 · 모드 전달", "kind": "request", "order": 1, "evidence": [ { "start_line": 15305, "end_line": 15310 } ], "assumption": false }, { "id": "m2", "from": "assembly", "to": "result", "label": "INGEST_ONLY 면 진행", "kind": "response", "order": 2, "evidence": [ { "start_line": 15305, "end_line": 15310 } ], "assumption": false }, { "id": "m3", "from": "assembly", "to": "result", "label": "아니면 조립 거부", "kind": "response", "order": 3, "evidence": [ { "start_line": 15305, "end_line": 15310 } ], "assumption": false, "style": "dashed", "emphasis": "primary" } ] }