{ "version": "1.1", "id": "messaging-testkit-f02", "title": "강제가 없는 규칙", "question": "isComplete 는 어느 어댑터에 실제로 걸리는가?", "type": "sequence", "direction": "LR", "audience": [ "메시징 testkit 을 읽는 사람" ], "summary": "isComplete 를 거는 테스트는 Experimental 어댑터에만 있고 Stable 어댑터에는 없다.", "alt": "CrossBrokerContractSuite 가 isComplete 를 질의하고, 거기서 Experimental 어댑터로는 실선이, Stable 어댑터로는 점선이 간다.", "long_description": "SSOT §12.4(a) 는 BrokerFailureMatrix 클래스 javadoc 이 \"A Stable adapter must cover every scenario\" 를 선언하고 그 규칙이 문서가 아니라 테스트로 강제된다고 적는다고 기록한다. 측정에서 isComplete 의 호출부는 CrossBrokerContractSuite 한 곳이고 그것은 Experimental 어댑터가 불완전함을 단언한다. Stable 인 messaging-kafka 는 gap 을 가진 채 통과한다.", "source_context": { "document": "docs/clean-architecture-backend-template/final/document.md", "document_sha256": "8071fe71b3359d9cf60b95909c26c7b50653ce2f22bbc5fcf6988719bb91236d", "anchor": { "kind": "line", "value": 40325, "line": 40325 } }, "composition": { "profile": "sequence", "diagram_only": true, "reference_ids": [ "payment-approval-sequence" ], "rationale": "한 호출부가 isComplete 를 부르는 순서가 있고, Stable 에 대한 호출이 그 순서에 없다는 것이 논지다.", "focus_node": "matrix" }, "groups": [], "nodes": [ { "id": "suite", "label": "CrossBrokerContractSuite", "kind": "test", "role": "participant", "evidence": [ { "start_line": 40337, "end_line": 40340 } ], "assumption": false }, { "id": "matrix", "label": "BrokerFailureMatrix", "kind": "service", "role": "participant", "evidence": [ { "start_line": 40325, "end_line": 40337 } ], "assumption": false, "emphasis": "primary" } ], "edges": [ { "id": "m1", "from": "suite", "to": "matrix", "label": "isComplete Experimental", "kind": "request", "order": 1, "evidence": [ { "start_line": 40337, "end_line": 40340 } ], "assumption": false }, { "id": "m2", "from": "matrix", "to": "suite", "label": "불완전 반환", "kind": "response", "order": 2, "evidence": [ { "start_line": 40340, "end_line": 40340 } ], "assumption": false, "style": "dashed" }, { "id": "m3", "from": "suite", "to": "matrix", "label": "isComplete Stable 없음", "kind": "request", "order": 3, "evidence": [ { "start_line": 40340, "end_line": 40342 } ], "assumption": false, "style": "dashed", "emphasis": "primary" } ], "legend": [], "metadata": {} }