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>
71 lines
4.4 KiB
Plaintext
71 lines
4.4 KiB
Plaintext
# sub-scope 01 네 리프의 소스 세트와 계수
|
|
messaging-core-api main=85 test=8 main줄수=3948 소스세트: main test
|
|
messaging-transport-spi main=13 test=4 main줄수=776 소스세트: main test
|
|
messaging-reliability-api main=13 test=0 main줄수=817 소스세트: main
|
|
messaging-runtime-core main=6 test=4 main줄수=787 소스세트: main test
|
|
|
|
# 그 817 줄의 내역
|
|
공백 79 · 주석 415 · 코드 323 · 합계 817
|
|
|
|
# 열세 타입의 선언 형태와 줄 수
|
|
ClaimCheckReference.java record 50 줄
|
|
IdempotentMessageHandler.java interface 33 줄
|
|
InboxRecord.java record 27 줄
|
|
InboxRepository.java interface 53 줄
|
|
InboxResult.java enum 45 줄
|
|
OutboxCanonicalMetadata.java record 158 줄
|
|
OutboxLease.java record 42 줄
|
|
OutboxRecord.java record 140 줄
|
|
OutboxRepository.java interface 152 줄
|
|
OutboxStatus.java enum 37 줄
|
|
OutboxTransitionResult.java enum 24 줄
|
|
ReliableMessagePublisher.java interface 27 줄
|
|
TransactionalMessageAction.java interface 29 줄
|
|
|
|
# 실행 가능한 규칙을 가진 유일한 열거형
|
|
InboxResult.java:6 * <p>Three outcomes, not two. Collapsing {@link #ALREADY_APPLIED} and {@link #CLAIMED_ELSEWHERE}
|
|
InboxResult.java:29 CLAIMED_ELSEWHERE(false);
|
|
InboxResult.java:42 public boolean isSafeToSettle() {
|
|
OutboxStatus 와 OutboxTransitionResult 의 메서드 수 :
|
|
OutboxStatus 0 개
|
|
OutboxTransitionResult 0 개
|
|
전이 규칙이 실제로 선언된 자리 :
|
|
OutboxRepository.java:70 * Records a confirmed publication, only if this lease still owns the row.
|
|
OutboxRepository.java:72 * @return {@link OutboxTransitionResult#STALE_LEASE} when another relay has taken it
|
|
OutboxRepository.java:87 /** Records an ambiguous outcome, only if this lease still owns the row. */
|
|
|
|
# 원문 §3.6 이 지목한 구현 리프 이름과, 같은 문서 §7 이 적은 실제 이름
|
|
analysis/19:33:| 7 | `messaging-outbox-jdbc-postgresql` | 28 | 5 | `app-bootstrap` |
|
|
analysis/19:41:| 15 | `messaging-inbox-jdbc-postgresql` | 13 | 2 | `app-bootstrap` |
|
|
analysis/19:33:| 7 | `messaging-outbox-jdbc-postgresql` | 28 | 5 | `app-bootstrap` |
|
|
analysis/19:41:| 15 | `messaging-inbox-jdbc-postgresql` | 13 | 2 | `app-bootstrap` |
|
|
analysis/19:44:| 18 | `messaging-claim-check` | 11 | 2 | `app-bootstrap` |
|
|
저장소에 실재하는 이름 :
|
|
messaging-outbox-jdbc src 디렉터리 없음
|
|
messaging-inbox-jdbc src 디렉터리 없음
|
|
messaging-outbox-jdbc-postgresql main=13 test=8
|
|
messaging-inbox-jdbc-postgresql main=6 test=4
|
|
messaging-claim-check main=6 test=3
|
|
messaging-outbox-jpa · messaging-inbox-jpa 가 등록돼 있는가 :
|
|
modules.json 등재 0 건 · git 추적 파일 0 개
|
|
|
|
# 두 열거형을 코드에서 참조하는 test (주석·문자열 제거, 단어 경계)
|
|
OutboxStatus : 6 파일
|
|
DebeziumOutboxRecordMapperTest.java 2 회 (messaging-outbox-jdbc-postgresql)
|
|
JdbcOutboxTransactionRequirementTest.java 2 회 (messaging-outbox-jdbc-postgresql)
|
|
OutboxEnvelopeFactoryTest.java 2 회 (messaging-outbox-jdbc-postgresql)
|
|
OutboxPostgresIT.java 8 회 (messaging-outbox-jdbc-postgresql)
|
|
OutboxRelayTest.java 18 회 (messaging-outbox-jdbc-postgresql)
|
|
OutboxRelayWorkerTest.java 5 회 (messaging-outbox-jdbc-postgresql)
|
|
OutboxTransitionResult : 4 파일
|
|
MessagingOutboxRelayLifecycleTest.java 7 회 (messaging-spring-boot-starter)
|
|
OutboxOperationsTest.java 11 회 (messaging-outbox-jdbc-postgresql)
|
|
OutboxPostgresIT.java 4 회 (messaging-outbox-jdbc-postgresql)
|
|
OutboxRelayTest.java 19 회 (messaging-outbox-jdbc-postgresql)
|
|
|
|
# 열세 타입 중 test 참조가 0 인 것
|
|
IdempotentMessageHandler test 0 · 자기 파일 밖 main 1
|
|
InboxRecord test 0 · 자기 파일 밖 main 0
|
|
ReliableMessagePublisher test 0 · 자기 파일 밖 main 0
|
|
TransactionalMessageAction test 0 · 자기 파일 밖 main 2
|