Files
document-haness/docs/clean-architecture-backend-template/final/evidence/raw/212-inbound-graphql-data-probes.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

137 lines
12 KiB
Plaintext

Sub-scope 212-inbound-graphql-data-probes.txt (inbound-graphql) dataloader + fetch + pagination + mutation
revision=a24ece9cf797f7ea647e33bf846b115208ed1ba5
generatedAt=2026-08-30T08:39:09+00:00
=== OWNED FILES ===
d4858b8c3b218150d11877a7182832605c179566 src/main/java/dev/caskeleton/dataloader/GraphQlBatchChunker.java 58
ea5d63fb4ce3ddc7c8ae19e9b6b73618870445d1 src/main/java/dev/caskeleton/dataloader/GraphQlBatchContext.java 45
9dc350cb10c6b5a661fb0f79028ffb9dbd4a240c src/main/java/dev/caskeleton/dataloader/GraphQlBatchErrorPolicy.java 17
f4030a67605183ccd6a029d12171a1af6c9f807a src/main/java/dev/caskeleton/dataloader/GraphQlBatchExecutor.java 121
b5fe03d0afc7e15f91dad8b214c4ecf1d09f8d1c src/main/java/dev/caskeleton/dataloader/GraphQlBatchLoadException.java 29
9962aac8efff6a059a9cb722d4edd3cff91e30e8 src/main/java/dev/caskeleton/dataloader/GraphQlBatchObservation.java 41
50480641b00d725fd22e9c59c16103d28cf9a08d src/main/java/dev/caskeleton/dataloader/GraphQlBatchPolicy.java 54
cb6dd4dc73b44d4819765c71c0d947dca537ae7d src/main/java/dev/caskeleton/dataloader/GraphQlBatchPolicyRegistry.java 70
61e4fc287cdacb097779f7a8f0a21577025db165 src/main/java/dev/caskeleton/dataloader/GraphQlBatchResult.java 39
716507740004fdfdb1f036ae6e4631122ed77488 src/main/java/dev/caskeleton/dataloader/GraphQlBatchResultMapper.java 134
f771ac93dffc12d261f7e4516e2611f883aba383 src/main/java/dev/caskeleton/dataloader/GraphQlBatchTimeoutException.java 36
ff043de4e7e774fd22a1a4f9c8f0ab68829e8150 src/main/java/dev/caskeleton/dataloader/GraphQlBatchValue.java 62
eaac7a22e9f0ad41c6b0f3ec8a8574691d434155 src/main/java/dev/caskeleton/dataloader/GraphQlDataLoaderFactory.java 61
d4f06be841cb2cd9b821fb471335d12db0333e0d src/main/java/dev/caskeleton/dataloader/GraphQlDataLoaderName.java 23
17be491bf08dcb72d4e4bd148054d6fb74accab8 src/main/java/dev/caskeleton/dataloader/GraphQlDataLoaderRequestRegistry.java 64
18730499aaeddcfc0e797219210061f7359487c5 src/main/java/dev/caskeleton/dataloader/GraphQlMissingKeyException.java 24
45fcff17e2307e9df5de3c1f32dccc373df7c65f src/main/java/dev/caskeleton/dataloader/GraphQlMissingKeyPolicy.java 17
4947c892acf93e356ca4f9c1932dfed1c5686285 src/main/java/dev/caskeleton/fetch/GraphQlFetchProfile.java 49
77110c341fbf866d7768ea1a66a4b3637a564f5d src/main/java/dev/caskeleton/fetch/GraphQlFetchProfileClassifier.java 82
0b08704f2f8cfbf173476d340066d3eddcecff20 src/main/java/dev/caskeleton/fetch/GraphQlFetchProfileName.java 23
1f0f0a5bc826f7a9364ba3db0402166d8ad2e1c5 src/main/java/dev/caskeleton/fetch/GraphQlFetchProfileRegistry.java 76
4d9968b401a8c8959c8b96a2a5b52e761e4244cf src/main/java/dev/caskeleton/fetch/GraphQlFetchProfileRule.java 37
d73240db41230d6951af103caa2c884177f9c8ef src/main/java/dev/caskeleton/fetch/GraphQlFetchProfileValidationException.java 21
3e2e3d52489c61d374ffc26349ed61172756e0c1 src/main/java/dev/caskeleton/fetch/GraphQlSelectionCoordinate.java 30
490406d2540048f33c07ff1b0e0bd768c1f27ea8 src/main/java/dev/caskeleton/fetch/GraphQlSelectionSetView.java 52
dcc4e0f7e1df414938d9ec89f70d450d49f44c1b src/main/java/dev/caskeleton/fetch/GraphQlSelectionSignature.java 33
e4e182c4d9de61f4318ee5d3fe61fc2b134826d0 src/main/java/dev/caskeleton/fetch/GraphQlUnmappedSelectionException.java 31
4f56f6755f288c6ed21f69545d076a9bef59243f src/main/java/dev/caskeleton/mutation/GraphQlBatchMutationItemResult.java 28
218b788cad295dd0232fd52ffa5ec711cb01cc4b src/main/java/dev/caskeleton/mutation/GraphQlBusinessResult.java 55
58abd9df0beabe51af3b777b99ccf9ae889ba7af src/main/java/dev/caskeleton/mutation/GraphQlCanonicalInput.java 87
76a28e9e2ee4cfa8994d2a9be236c65a5f0a601d src/main/java/dev/caskeleton/mutation/GraphQlExpectedVersion.java 19
9959cf97b8bea87f3ccb3bff895895487c310876 src/main/java/dev/caskeleton/mutation/GraphQlIdempotencyConflictException.java 32
733e32fd06ef7ba06180b9c824bedd8159d88539 src/main/java/dev/caskeleton/mutation/GraphQlIdempotencyKey.java 19
f15c32a65ca1fce9338771b8ad1fa8192cf2fb8c src/main/java/dev/caskeleton/mutation/GraphQlMutationContractException.java 20
e260e2d04411c9bffa570975b5a7a4c013aac2e8 src/main/java/dev/caskeleton/mutation/GraphQlMutationContractValidator.java 92
ed25f2e340e9813e7d778f84b05ef9f7ca6aeb08 src/main/java/dev/caskeleton/mutation/GraphQlMutationCoordinate.java 21
f200f388fd332829dfeba4b394859d915747bc49 src/main/java/dev/caskeleton/mutation/GraphQlMutationFingerprint.java 49
856635892328a2192b1644bca4937869a5451bfa src/main/java/dev/caskeleton/mutation/GraphQlMutationIdempotencyContext.java 95
dc025868acba0f82731cacdf071b45483adc56b1 src/main/java/dev/caskeleton/mutation/GraphQlMutationIdempotencyInterceptor.java 77
6a5a249d4f01b503648f4584ad7427c7217c3426 src/main/java/dev/caskeleton/mutation/GraphQlMutationPayload.java 43
de543af8ee5f2491f0014dd4ba2dac425723ed9a src/main/java/dev/caskeleton/mutation/GraphQlMutationResultMapper.java 46
da0a6a08cddfc8cc24bf3878d559e75dfe1c9ab7 src/main/java/dev/caskeleton/pagination/GraphQlConnection.java 43
b8532097fd86873736a8058980b9f82c35358a99 src/main/java/dev/caskeleton/pagination/GraphQlConnectionAssembler.java 108
853486c88c9c7d6b8fb73e66e2ceda8b29450864 src/main/java/dev/caskeleton/pagination/GraphQlConnectionException.java 28
58cd8c15c373aa7661dc47307056567b047d7219 src/main/java/dev/caskeleton/pagination/GraphQlConnectionPolicy.java 45
d9faea757123589229a5fa060cf00dbdcd6f9fdf src/main/java/dev/caskeleton/pagination/GraphQlConnectionRequest.java 55
0ea21e61b40de362415b62abb3a2a337326d5ce3 src/main/java/dev/caskeleton/pagination/GraphQlCursorCodec.java 27
4614bed6e58f7114370e613abbbafe4a059762c2 src/main/java/dev/caskeleton/pagination/GraphQlCursorException.java 30
97c3e9f8d80cc82277740fe51f9a8cc69481a117 src/main/java/dev/caskeleton/pagination/GraphQlCursorFraming.java 67
52a1850d0bdc0112a6990997604948e7749370a6 src/main/java/dev/caskeleton/pagination/GraphQlCursorKeyRing.java 81
e0253a19aaf0bd9ebbc6990494491d3f1a6c74ac src/main/java/dev/caskeleton/pagination/GraphQlCursorKeyset.java 54
15afcaf195016d30092625a82e35d3e11bafe6b7 src/main/java/dev/caskeleton/pagination/GraphQlCursorPayload.java 123
da994e0bec445fc3cde7902a5863ead2464d44df src/main/java/dev/caskeleton/pagination/GraphQlCursorScope.java 57
3834061994d478d814bf574c94907adb2313e54b src/main/java/dev/caskeleton/pagination/GraphQlCursorVersion.java 45
a4dc8681d72b2b1a45c48f2aecce8ba15c6bc184 src/main/java/dev/caskeleton/pagination/GraphQlEdge.java 17
7de7cab8cf2fbdd190d21dd2b57d7f4ba879124b src/main/java/dev/caskeleton/pagination/GraphQlKeysetWindow.java 39
11250e5bf14acb6b30d1d45549403d29694bd44b src/main/java/dev/caskeleton/pagination/GraphQlPageInfo.java 18
23f6f3239528e79f76d76a3346d7fb12d63ddf67 src/main/java/dev/caskeleton/pagination/HmacGraphQlCursorCodec.java 181
63a7fd654978aa438fcec5e1c4b55a01f9c6567c src/test/java/dev/caskeleton/dataloader/GraphQlBatchChunkerTest.java 138
0b33c80e5ce5ac532ed7461dd6a3425f0af770a3 src/test/java/dev/caskeleton/dataloader/GraphQlBatchContractTest.java 173
0dd09746bec75fb776964e059185bced76620bf1 src/test/java/dev/caskeleton/dataloader/GraphQlBatchResultMapperTest.java 108
52c9588c5252a626d3be7fbe7eb62c14017d3298 src/test/java/dev/caskeleton/dataloader/GraphQlDataLoaderRequestRegistryTest.java 104
fbbc652b7efad15459b1b5c36ef94f8183b5da7e src/test/java/dev/caskeleton/fetch/GraphQlFetchProfileClassifierTest.java 103
724579fdb808579c41451a1fea8337683725f1fb src/test/java/dev/caskeleton/fetch/GraphQlFetchProfileRegistryTest.java 121
7c3df3208d7f46c8d75df2df8116c613b61e4ec3 src/test/java/dev/caskeleton/mutation/GraphQlMutationIdempotencyContextTest.java 318
07354656d622c62d71366a788e4a06d32a1d44ff src/test/java/dev/caskeleton/mutation/GraphQlMutationResultMapperTest.java 107
4381f766cafeab6eee7b983db625484e1b6eebdc src/test/java/dev/caskeleton/pagination/GraphQlConnectionAssemblerTest.java 147
b0abe3e6ee08b91d2bf76299edead7c2c09dde58 src/test/java/dev/caskeleton/pagination/GraphQlCursorFixtures.java 61
bad9cd3284c20a49cf8998b1daa2b8ba3cf8adfa src/test/java/dev/caskeleton/pagination/HmacGraphQlCursorCodecTest.java 251
file_count=69
=== 배선 전수 (autoconf 패키지 참조 / 자기·autoconfigure 제외 main 참조 / test 참조 / LOC) ===
TYPE autoconf main_other test LOC
GraphQlBatchChunker 0 2 2 58
GraphQlBatchContext 0 3 5 45
GraphQlBatchErrorPolicy 0 1 3 17
GraphQlBatchExecutor 0 2 2 121
GraphQlBatchLoadException 0 1 1 29
GraphQlBatchObservation 0 1 2 41
GraphQlBatchPolicy 0 4 4 54
GraphQlBatchPolicyRegistry 4 1 3 70
GraphQlBatchResult 0 1 2 39
GraphQlBatchResultMapper 0 1 3 134
GraphQlBatchTimeoutException 0 2 2 36
GraphQlBatchValue 0 2 3 62
GraphQlDataLoaderFactory 4 1 3 61
GraphQlDataLoaderName 0 6 5 23
GraphQlDataLoaderRequestRegistry 0 1 1 64
GraphQlMissingKeyException 0 1 1 24
GraphQlMissingKeyPolicy 0 2 3 17
GraphQlFetchProfile 0 2 2 49
GraphQlFetchProfileClassifier 0 0 1 82
GraphQlFetchProfileName 0 3 2 23
GraphQlFetchProfileRegistry 0 0 1 76
GraphQlFetchProfileRule 0 1 1 37
GraphQlFetchProfileValidationException 0 3 2 21
GraphQlSelectionCoordinate 0 1 0 30
GraphQlSelectionSetView 0 2 1 52
GraphQlSelectionSignature 0 1 1 33
GraphQlUnmappedSelectionException 0 1 1 31
GraphQlConnection 0 1 1 43
GraphQlConnectionAssembler 0 0 2 108
GraphQlConnectionException 0 2 1 28
GraphQlConnectionPolicy 0 0 3 45
GraphQlConnectionRequest 0 2 2 55
GraphQlCursorCodec 0 3 1 27
GraphQlCursorException 0 10 4 30
GraphQlCursorFraming 0 3 1 67
GraphQlCursorKeyRing 0 1 2 81
GraphQlCursorKeyset 0 1 0 54
GraphQlCursorPayload 0 6 2 123
GraphQlCursorScope 0 4 1 57
GraphQlCursorVersion 0 2 1 45
GraphQlEdge 0 2 1 17
GraphQlKeysetWindow 0 1 2 39
GraphQlPageInfo 0 2 1 18
HmacGraphQlCursorCodec 0 0 4 181
GraphQlBatchMutationItemResult 0 1 0 28
GraphQlBusinessResult 0 1 1 55
GraphQlCanonicalInput 0 1 0 87
GraphQlExpectedVersion 0 1 1 19
GraphQlIdempotencyConflictException 0 2 1 32
GraphQlIdempotencyKey 0 2 1 19
GraphQlMutationContractException 0 2 2 20
GraphQlMutationContractValidator 0 0 2 92
GraphQlMutationCoordinate 0 3 2 21
GraphQlMutationFingerprint 0 2 1 49
GraphQlMutationIdempotencyContext 0 2 1 95
GraphQlMutationIdempotencyInterceptor 0 0 2 77
GraphQlMutationPayload 0 2 1 43
GraphQlMutationResultMapper 0 0 1 46