{ "version": "1.1", "id": "grpc-observability-c01", "title": "구별하는 세 층위", "question": "호출 한 번은 어느 층위에서 무엇으로 세는가?", "type": "data-flow", "direction": "LR", "audience": [ "이 저장소의 구조를 읽는 사람" ], "summary": "관측을 논리 RPC 와 물리 시도와 스트림 수명주기로 나누고 한 층위로 접으면 재시도한 호출의 성공률이 왜곡된다.", "alt": "논리 층의 논리 RPC 에서 물리 층의 물리 시도와 스트림 수명주기로 화살표가 건너간다.", "long_description": "SSOT 는 이 리프가 세 층위를 구별한다고 적는다 — 논리 RPC, 물리 시도, 스트림 수명주기. 재시도가 있는 시스템에서 호출 한 번이 무엇인지가 층위마다 다르고 record 구현이 그 구별을 실제로 지킨다.", "source_context": { "document": "/home/donghyeon/workspace/chat-gpt-container/document-haness/docs/clean-architecture-backend-template/final/document.md", "document_sha256": "8071fe71b3359d9cf60b95909c26c7b50653ce2f22bbc5fcf6988719bb91236d", "anchor": { "kind": "line", "value": 44428, "line": 44428 } }, "composition": { "profile": "two-zone-pipeline", "diagram_only": true, "reference_ids": [ "localization-pipeline" ], "rationale": "논리 한 번이 물리에서 여럿이 되는 경계가 논지다.", "focus_node": "logical" }, "groups": [ { "id": "z1", "label": "논리 층", "evidence": [ { "start_line": 44428, "end_line": 44431 } ], "assumption": false }, { "id": "z2", "label": "물리 층", "evidence": [ { "start_line": 44428, "end_line": 44431 } ], "assumption": false } ], "nodes": [ { "id": "logical", "label": "논리 RPC", "kind": "service", "role": "stage", "evidence": [ { "start_line": 44428, "end_line": 44431 } ], "assumption": false, "group": "z1", "emphasis": "primary" }, { "id": "attempt", "label": "물리 시도", "kind": "service", "role": "stage", "evidence": [ { "start_line": 44428, "end_line": 44431 } ], "assumption": false, "group": "z2" }, { "id": "stream", "label": "스트림 수명주기", "kind": "service", "role": "stage", "evidence": [ { "start_line": 44428, "end_line": 44431 } ], "assumption": false, "group": "z2" } ], "edges": [ { "id": "a", "from": "logical", "to": "attempt", "label": "재시도마다", "kind": "request", "evidence": [ { "start_line": 44428, "end_line": 44431 } ], "assumption": false, "emphasis": "primary" }, { "id": "b", "from": "attempt", "to": "stream", "label": "스트림이면", "kind": "request", "evidence": [ { "start_line": 44428, "end_line": 44431 } ], "assumption": false, "style": "dashed" } ], "legend": [], "metadata": {} }