Files
document-haness/docs/clean-architecture-backend-template/final/evidence/raw/a19-f003-messaging-reliability-api.txt
T
DongHyeonkaandClaude Opus 5 b2963105a8 docs(keycloak-session-store): import the session-storage lab as a new project
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>
2026-09-04 22:51:59 +09:00

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