The keycloak project ended with four open questions that design could not
settle. A two-VM lab was built to answer them by measurement, and this is
that material: 26 experiments, 125 raw command outputs, 22 browser captures.
Follows the import procedure in README.md.
source/ the originating repository verbatim — 78 documents, 28 SVGs,
8 manifests, plus .source-revision recording the commit
final/ the SSOT
document.md 729 lines written from the 29 experiment documents, not
concatenated: what was predicted, what was measured, and
where the measurement itself was wrong
evidence/raw 125 outputs, flattened to <experiment>__<file> because
the originals collided (01-baseline.txt appeared three
times) and the audit only globs the top level
evidence/meta one per raw file; command and exitCode are null and the
README says why rather than inventing them
evidence/browser 22 captures
assets/ three diagrams through techviz
.techviz/ their VizSpecs
A separate project rather than an addition to keycloak: the B-layer answers
that project's four questions, but the A, C and D layers are about cluster
failure, SSO and operations, and one document.md should hold one subject.
The four question records there can point here through 관계.
Recorded rather than papered over: only three of the 28 diagrams were
remade. The repository forbids hand-drawn SVG and forbids titles inside the
canvas; all 28 originals carry both, so converting them is redrawing, not
reformatting. They stay in source/ and the gap is written into the document.
verify-pipeline.py passes. audit-records.py reports no issues.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
36 lines
1.6 KiB
Plaintext
36 lines
1.6 KiB
Plaintext
openjdk version "21.0.12" 2026-07-21
|
|
[요청 본문을 인코딩하는 변환기] RestClient 기본 목록
|
|
org.springframework.http.converter.json.JacksonJsonHttpMessageConverter
|
|
|
|
[java.util.concurrent.atomic 의 Number 하위 타입]
|
|
AtomicInteger Number 상속 true 판정 REPLAYABLE
|
|
AtomicLong Number 상속 true 판정 REPLAYABLE
|
|
LongAdder Number 상속 true 판정 REPLAYABLE
|
|
DoubleAdder Number 상속 true 판정 REPLAYABLE
|
|
LongAccumulator Number 상속 true 판정 REPLAYABLE
|
|
DoubleAccumulator Number 상속 true 판정 REPLAYABLE
|
|
|
|
[상자 원시형과 원자 계열 사이에 남는 둘]
|
|
BigInteger add 뒤 자기 값 7 판정 REPLAYABLE
|
|
BigDecimal add 뒤 자기 값 7.5 판정 REPLAYABLE
|
|
AtomicInteger increment 뒤 자기 값 8 판정 REPLAYABLE
|
|
|
|
[성분에 카운터를 둔 record]
|
|
판정 : REPLAYABLE
|
|
첫 인코딩 : {"id":"A-1","attempt":1}
|
|
다시 인코딩 : {"id":"A-1","attempt":2}
|
|
판정(그대로) : REPLAYABLE
|
|
같은 바이트인가 : false
|
|
|
|
[검사가 잡는 쪽]
|
|
ArrayList 자체 판정 ONE_SHOT
|
|
ArrayList 를 감싼 record 판정 ONE_SHOT
|
|
List.of 를 감싼 record 판정 REPLAYABLE
|
|
/tmp/tmp.Innso2FbOh/ReplayabilityProbe.java:57: warning: [removal] messageConverters(Consumer<List<HttpMessageConverter<?>>>) in Builder has been deprecated and marked for removal
|
|
.messageConverters(
|
|
^
|
|
1 warning
|
|
SLF4J(W): No SLF4J providers were found.
|
|
SLF4J(W): Defaulting to no-operation (NOP) logger implementation
|
|
SLF4J(W): See https://www.slf4j.org/codes.html#noProviders for further details.
|