docs: give the twelve experiments that had no architecture diagram one
An audit against the standard the series set — concepts, procedure, commands, architecture diagram, evidence table, terminal output — found the three new experiments met it while twelve of the original ones had no diagram at all: A-0, A-1, A-3, A-4, A-5, A-6, A-8, B-0, B-2, B-7, C-2, D-2. Each now has one drawn from what that experiment actually found, not filler: A-0 shows sharing going through PostgreSQL rather than between the caches; A-3 the gap between the 200 and the WAL flush, with both failed injections; A-5 the three silent injection failures; A-6 the two places latency is multiplied; B-0 the repository keyed by principal with no session id; B-2 the primary key that causes the overwrite; D-2 why the rolling update stopped the accident halfway. Also corrected the index's stale claim of 11 experiments without a screenshot — it is 14, and the reason is recorded: those experiments were measured from terminals, the database and logs, and the observability stack does not scrape Redis, the BFF or PostgreSQL, so there is no console to photograph. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
a2f749292a
commit
cdac9b8178
@@ -0,0 +1,45 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 860 400" font-family="-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,sans-serif">
|
||||
<style>
|
||||
.box{fill:#fff;stroke:#8c959f;stroke-width:1.4;rx:6}
|
||||
.dead{fill:#fff5f5;stroke:#cf222e;stroke-width:1.6;stroke-dasharray:5 3;rx:6}
|
||||
.ok{fill:#f6fdf6;stroke:#1a7f37;stroke-width:1.6;rx:6}
|
||||
.warn{fill:#fff8f0;stroke:#bf8700;stroke-width:1.5;rx:6}
|
||||
.t{font-size:12px;fill:#1f2328}
|
||||
.tb{font-size:12.5px;fill:#1f2328;font-weight:600}
|
||||
.s{font-size:10.5px;fill:#656d76}
|
||||
.ttl{font-size:14px;fill:#1f2328;font-weight:600}
|
||||
.r{stroke:#cf222e;stroke-width:1.6;fill:none}
|
||||
.g{stroke:#1a7f37;stroke-width:1.6;fill:none}
|
||||
.k{stroke:#8c959f;stroke-width:1.3;fill:none}
|
||||
</style>
|
||||
<defs>
|
||||
<marker id="a" markerWidth="8" markerHeight="8" refX="7" refY="3" orient="auto"><path d="M0,0 L7,3 L0,6 z" fill="#8c959f"/></marker>
|
||||
<marker id="ar" markerWidth="8" markerHeight="8" refX="7" refY="3" orient="auto"><path d="M0,0 L7,3 L0,6 z" fill="#cf222e"/></marker>
|
||||
<marker id="ag" markerWidth="8" markerHeight="8" refX="7" refY="3" orient="auto"><path d="M0,0 L7,3 L0,6 z" fill="#1a7f37"/></marker>
|
||||
</defs>
|
||||
<text x="20" y="26" class="ttl">B-0 — 아무것도 설정하지 않으면 Spring 이 무엇을 고르는가</text>
|
||||
<text x="20" y="44" class="s">추측이 맞았지만, 추측으로 두면 안 되는 이유가 둘째 줄에 있다</text>
|
||||
<rect x="30" y="72" width="800" height="118" class="box"/>
|
||||
<text x="46" y="94" class="tb">/actuator/beans 가 실제로 답한 것</text>
|
||||
<text x="46" y="118" class="t">authorizedClientService → InMemoryOAuth2AuthorizedClientService</text>
|
||||
<text x="46" y="138" class="t">authorizedClientRepository → AuthenticatedPrincipalOAuth2AuthorizedClientRepository</text>
|
||||
<text x="46" y="158" class="t">SessionRepository → 없음 (서블릿 컨테이너 in-memory)</text>
|
||||
<text x="46" y="178" class="t" fill="#cf222e">Redis / Spring Session → 없음</text>
|
||||
<rect x="30" y="212" width="390" height="150" class="warn"/>
|
||||
<text x="46" y="234" class="tb">★ 이름이 곧 설명이다</text>
|
||||
<text x="46" y="256" class="s">AuthenticatedPrincipal…Repository 는</text>
|
||||
<text x="46" y="276" class="t">principal 이름으로 찾는다</text>
|
||||
<rect x="46" y="288" width="358" height="30" class="dead"/>
|
||||
<text x="58" y="308" class="s">조회 키에 session id 가 없다</text>
|
||||
<text x="46" y="336" class="s">그래서 세션 저장소를 Redis 로 옮겨도</text>
|
||||
<text x="46" y="354" class="s">토큰은 따라오지 않는다 — B-1 이 겪는 문제의 뿌리</text>
|
||||
<rect x="440" y="212" width="390" height="150" class="box"/>
|
||||
<text x="456" y="234" class="tb">두 개가 서로 다른 것을 저장한다</text>
|
||||
<rect x="456" y="248" width="358" height="40" class="box"/>
|
||||
<text x="468" y="266" class="t">Application Session</text>
|
||||
<text x="468" y="282" class="s">누가 로그인했는지 · 세션 id 로 찾는다</text>
|
||||
<rect x="456" y="298" width="358" height="40" class="box"/>
|
||||
<text x="468" y="316" class="t">OAuth2AuthorizedClient</text>
|
||||
<text x="468" y="332" class="s">access / refresh token · principal 이름으로 찾는다</text>
|
||||
<text x="456" y="356" class="s">이 둘을 하나로 생각하면 B-1·B-2 의 결과를 해석할 수 없다</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.2 KiB |
Reference in New Issue
Block a user