{ "version": "1.1", "id": "adapter-outbound-persistence-jpa-c06", "title": "allowlist 에 들어갈 수 있는 범주", "question": "설정으로 재시도 가능하게 만들 수 있는 범주는 무엇인가?", "type": "dependency", "direction": "LR", "audience": [ "이 저장소의 구조를 읽는 사람" ], "summary": "설정으로 재시도 가능하게 만들 수 있는 범주가 타입에서 좁혀져 있고 완료 불명은 생성자가 거부한다.", "alt": "RetryProfile allowlist 에서 직렬화 실패와 낙관적 충돌과 락 획득 실패로 화살표가 가고 COMPLETION_UNKNOWN 으로는 거부 화살표가 간다.", "long_description": "SSOT §58 은 SQLSTATE 분류를 다루고 RetryProfile 이 COMPLETION_UNKNOWN 을 화이트리스트에 넣는 것을 생성자에서 거부한다고 적는다.", "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": 6409, "line": 6409 } }, "composition": { "profile": "component-flow", "diagram_only": true, "reference_ids": [ "payment-event-flow" ], "rationale": "어떤 범주가 allowlist 에 들어가고 어떤 것이 거부되는지가 논지다.", "focus_node": "allow" }, "groups": [], "nodes": [ { "id": "allow", "label": "RetryProfile allowlist", "kind": "service", "role": "source", "evidence": [ { "start_line": 6409, "end_line": 6440 } ], "assumption": false, "emphasis": "primary" }, { "id": "ser", "label": "직렬화 실패", "kind": "service", "role": "sink", "evidence": [ { "start_line": 6409, "end_line": 6440 } ], "assumption": false }, { "id": "opt", "label": "낙관적 충돌", "kind": "service", "role": "sink", "evidence": [ { "start_line": 6409, "end_line": 6440 } ], "assumption": false }, { "id": "lock", "label": "락 획득 실패", "kind": "service", "role": "sink", "evidence": [ { "start_line": 6409, "end_line": 6440 } ], "assumption": false }, { "id": "unk", "label": "COMPLETION_UNKNOWN", "kind": "service", "role": "sink", "evidence": [ { "start_line": 6409, "end_line": 6445 } ], "assumption": false, "details": [ "생성자가 거부" ] } ], "edges": [ { "id": "a", "from": "allow", "to": "ser", "label": "허용", "kind": "request", "evidence": [ { "start_line": 6409, "end_line": 6440 } ], "assumption": false }, { "id": "b", "from": "allow", "to": "opt", "label": "허용", "kind": "request", "evidence": [ { "start_line": 6409, "end_line": 6440 } ], "assumption": false }, { "id": "c", "from": "allow", "to": "lock", "label": "허용", "kind": "request", "evidence": [ { "start_line": 6409, "end_line": 6440 } ], "assumption": false }, { "id": "d", "from": "allow", "to": "unk", "label": "거부", "kind": "request", "evidence": [ { "start_line": 6409, "end_line": 6445 } ], "assumption": false, "style": "dashed", "emphasis": "primary" } ], "legend": [], "metadata": {} }