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>
244 lines
22 KiB
Plaintext
244 lines
22 KiB
Plaintext
Sub-scope 04 (cache-redis) sdk/lettuce/operations — manifest and probes
|
|
revision=a24ece9cf797f7ea647e33bf846b115208ed1ba5
|
|
generatedAt=2026-08-30T04:43:27+00:00
|
|
|
|
=== OWNED FILES ===
|
|
6cf662195dbee620aba4f7c41cfe1f2d89876065 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/AtomicCounterScripts.java 205
|
|
ebdd761fef7815229d24e4b284d7fc2d0da94319 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/BatchExecution.java 268
|
|
0ef880fb95edd2fa69776d6272db959f146f5d3a main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/BitmapOperationRequests.java 215
|
|
a3ed40f047d615777a3812903e5cdda744bdc28d main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/GeoOperationRequests.java 251
|
|
e1378b452a09b2f1fbf4977683f560a609178cde main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/GeoSearchHit.java 60
|
|
b13c4cdd3ecd67a47794f2c82c4f8fe68b4be250 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/HashOperationRequests.java 422
|
|
b498fbdffa74fa32c74c6c9901ddec0f490f364e main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/HashScanPage.java 38
|
|
f090c0f82196f1134585576bade6c439b2e297c6 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/HyperLogLogOperationRequests.java 117
|
|
ccd7e9ee3231f4882834a5851d53874b951f8eed main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/KeyOperationRequests.java 306
|
|
fc0391925f2d4567c1f552c3fd4620eea451eb4e main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/KeyScanPage.java 20
|
|
464148742de02dab8c9fb01077a8eaab2611ebcb main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/KeyedElement.java 69
|
|
a07568c841979b9ff7c2aabc1ec2d824dedfa523 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceReactiveRedisBatchOperations.java 39
|
|
7c7028b516f73929501f84819f642c5f33e3d212 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceReactiveRedisBitFieldOperations.java 47
|
|
e06bedcefb195d7e6a970dae4656172f4293a97d main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceReactiveRedisBitmapOperations.java 68
|
|
7673ea8ff186f47f56e5aa581848f4519ba7f84b main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceReactiveRedisBlockingListOperations.java 61
|
|
40584fa184ae9d9d0e185fa84873539e59f2eab8 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceReactiveRedisBlockingStreamOperations.java 63
|
|
0c05b18389ddc243326162f33d10c30f1028b378 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceReactiveRedisGeoOperations.java 75
|
|
091f2635e6db9517fb0d99ff3851d81732e01ec7 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceReactiveRedisHashFieldExpirationOperations.java 76
|
|
dd8f96efd8c87287a6abddd30a8aeb1239985776 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceReactiveRedisHashOperations.java 100
|
|
57468eb07817ea09408fb9db8f41d0ce9f3004e1 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceReactiveRedisHyperLogLogOperations.java 51
|
|
e4ce1a2a1517b4eb076e6634fbca24eec0b3c311 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceReactiveRedisKeyOperations.java 116
|
|
53c688aa96917807909d58eda6b9b6f99600b61e main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceReactiveRedisListOperations.java 129
|
|
92bab6ed3d7f37c2a8877a6fa999f7aa082c4be5 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceReactiveRedisPubSubOperations.java 63
|
|
732a51919870dee11baf65acdc2b2e7f0b50862f main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceReactiveRedisSetOperations.java 126
|
|
fef674100f309c99a1aa8463d274324dfbdfc059 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceReactiveRedisShardedPubSubOperations.java 67
|
|
226542121289c71802d5aa8c50bc57b11518f388 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceReactiveRedisSortedSetOperations.java 143
|
|
ea1891dc0a62fe1f9c49381b9cc89d397a06eae3 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceReactiveRedisStreamOperations.java 143
|
|
fe00fbce7b318b6f67dcd51565010173940ca44e main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceReactiveRedisValueOperations.java 126
|
|
876157cec26edc36170627eeb5058ce40c813946 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceRedisBatch.java 247
|
|
4ba7fb5f4ca43c83fb8af40c05b9524442b66832 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceRedisBatchOperations.java 49
|
|
986f51cc50aff0048d9196eb8591dec4e5a2ceef main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceRedisBitFieldOperations.java 43
|
|
25b7a746ae3c5db4122d86b4de4f954072369fe1 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceRedisBitmapOperations.java 66
|
|
8ab8e6d838c4af01423c15dc42ab66934a2b2bae main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceRedisBlockingListOperations.java 63
|
|
76c96cc1c3e9acb68af593a3ea4ff2963b089c63 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceRedisBlockingStreamOperations.java 65
|
|
7e5ead5e8a8e760f8fd5185c179c336fa0514da5 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceRedisCommandGateway.java 1282
|
|
d98021fab79b081ec43b0868e755f872a0634014 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceRedisGeoOperations.java 72
|
|
64c2bb0e76334d96683dcf3f6c78f83d24d96630 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceRedisHashFieldExpirationOperations.java 76
|
|
72cf0bdcac528ed9b3890e014fed3bf25a99dca3 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceRedisHashOperations.java 97
|
|
d5025f3d61efbe3c377e7b9d327c72848e0f8777 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceRedisHyperLogLogOperations.java 49
|
|
37413707e3860800d7765edb47ef6dc0464ca36a main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceRedisKeyOperations.java 108
|
|
bd38ec25d217cd50dda167199a64be21e4a66964 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceRedisListOperations.java 114
|
|
b067509eb186a62c9bff6e9c23d8167462cc2b36 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceRedisPubSubOperations.java 116
|
|
047d48a54cab4b70b2adcffc03c247465a8c56ed main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceRedisSetOperations.java 117
|
|
dea4045eecda4d7ce5705fbe4c8f4330781f4ee2 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceRedisShardedPubSubOperations.java 77
|
|
bf1201b1780738724d0bbd1e162b6e047d89e3c3 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceRedisSortedSetOperations.java 131
|
|
c9f50d6847727374f3337fea554cd91fd101b2c5 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceRedisStreamDeletionOperations.java 71
|
|
7d71c9d4e91fd4e48f5781fb95e321d3ed91e630 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceRedisStreamOperations.java 136
|
|
e371ddaf28f013a2ce8ff085ecc8f00056d6efaf main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceRedisValueOperations.java 106
|
|
dbe36970d2eed97c899bb1179a00a835a4b34fb9 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/ListOperationRequests.java 344
|
|
a24b04c704c624500bae71453e0d294e3a00648c main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LiveSubscription.java 44
|
|
3dca7b2f39a817e062b14ea243559ff1f1b626f9 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/MemberScanPage.java 20
|
|
ebde9ccf6ef7adde983de91e95e0e721ca75cb98 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/PubSubOperationRequests.java 119
|
|
0668c6edde069adf0ce0f1f4b9c63b93ee796386 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/RedisCommandGateway.java 1227
|
|
6435d76379bbb314e971632cafa081a8ec64b653 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/RedisOperationContext.java 405
|
|
0e94f868b6630651bd5286789d4ae50cb34c62ec main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/RedisOperationLimits.java 66
|
|
1153c0360f91d75e810e8a49e0f1f06a0968155a main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/RedisPubSubGateway.java 71
|
|
480d1fbbe13ecb020aed8753e550c48d5e78d5ad main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/ScoredMemberPage.java 39
|
|
c7d5429e3b4a973f96fc1440c775d7b51255acb3 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/SetOperationRequests.java 333
|
|
c13f507b272d10ab2748cc89b99a8b7fa99d4a32 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/SortedSetOperationRequests.java 413
|
|
671eb1cadbc124308e16232a5f81f6d0ebaf78d6 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/StreamClaimPage.java 23
|
|
8ba6626467bce2d83df6af743c85ff38c1ffe434 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/StreamEntry.java 74
|
|
b19bfaa45f681b22a23df0589e32e7f9f395400e main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/StreamOperationRequests.java 487
|
|
1373ea0cf7fcc1855446cda64405b194ccfeb14a main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/StreamPendingEntry.java 23
|
|
30e9818ab663b4384444c2a71f59d04ad671db6e main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/StreamPendingOverview.java 29
|
|
44ab90844511c34d41255e2ef0cf0e28cbbcbe54 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/SubscriptionFlux.java 113
|
|
e5716c2316f8bfe5232b917aac8febf420bb0c77 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/ValueOperationRequests.java 320
|
|
faf060a80d6af9adb4f7a3a8177d8e222c6f7bc1 main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/WritePresence.java 19
|
|
70750e5d41a09cb5e139d97d004a6b91210491e4 test/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/DeferringRedisCommandGateway.java 148
|
|
ada4e6b819d8ab4662274d7e015040838f6d1224 test/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/InMemoryGatewayAccess.java 50
|
|
eb23912c9b1770ff2177a11069cfaf5e2a80369b test/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/InMemoryRedisCommandGateway.java 2456
|
|
3e8e6565c4afbcee07a2e44ce4a47767f042f299 test/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/InMemoryRedisPubSubGateway.java 111
|
|
b86f725323cf79f4658eb368ca7430ee78f171de test/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LiveRedisClusterTest.java 362
|
|
b714df0adca919051529f8fc56b928e7056db0d8 test/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LiveRedisGuardrailTest.java 230
|
|
1bab101e188b06ce7802769b9df98c1af83dc438 test/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LiveRedisOperationsFixture.java 178
|
|
d5d4004b89ea808d188db5a336c855549d8b5ada test/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LiveRedisSentinelPromotionTest.java 437
|
|
2bb94f85b030f39bc6e6f789412ac9f7982a5493 test/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/RedisAdminPlaneContractTest.java 157
|
|
fed1ef2199c5d199bb0d39435b3a2163aab2bbd8 test/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/RedisBatchOperationsContractTest.java 200
|
|
42c5a401b1effe90a4705b95a9d8a6dd53e94dd6 test/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/RedisBitmapGeoOperationsContractTest.java 207
|
|
1e53439857d1d13c4fe280b14b7d7a7ac504fd22 test/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/RedisExtensionModulesContractTest.java 260
|
|
65182ca66a7b59e9ec357e724ad90636ceb62645 test/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/RedisFunctionOperationsContractTest.java 92
|
|
0b8e1a13170a54ab4e7a1868cec29c9c4eed1901 test/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/RedisHashFieldExpirationContractTest.java 148
|
|
32ed7f23b77ea1b6fe8d13cd575f9256849210c1 test/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/RedisHashOperationsContractTest.java 140
|
|
4d3c5ba837087193b945030fcbf646508f3c3909 test/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/RedisKeyOperationsContractTest.java 244
|
|
1f9db540792d5eba76a34c87868ab235a3627c70 test/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/RedisListOperationsContractTest.java 167
|
|
e122f1b24781db3b0cf4479bd8eda9e177cbb3d9 test/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/RedisOperationsFixture.java 272
|
|
8e318ada864e0f23c67a72d73b313f5a8d2b362f test/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/RedisPubSubOperationsContractTest.java 201
|
|
56060a362973fd1a96aa4db1061f15adcdee6cfc test/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/RedisRawGatewayContractTest.java 174
|
|
082272f0335a05d7b4027a640f2640234c7fbe7d test/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/RedisScriptOperationsContractTest.java 152
|
|
dee6eb1dc4f517ab84f2a6ef9b91eea5e0c93a89 test/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/RedisSetOperationsContractTest.java 170
|
|
4520f64a5b153db7f02e9614f16fafe8b297d154 test/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/RedisSortedSetOperationsContractTest.java 197
|
|
5cd316d012a84275e4a79c8df270493133ab3972 test/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/RedisStreamDeletionCapabilityTest.java 75
|
|
46fb0aef30da1c67b54c578ff36109872882a8f8 test/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/RedisStreamOperationsContractTest.java 302
|
|
6c575edd24540b9c01384441dbe748e2b15f6c87 test/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/RedisTransactionContractTest.java 324
|
|
977660d64e9b228f936a3aab8e9e4638d0416664 test/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/RedisTransactionSlotContractTest.java 181
|
|
6f0a16a39e14f820df28ec790e46c840ed1a640e test/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/RedisValueOperationsContractTest.java 265
|
|
|
|
main: 67 test: 28
|
|
main LOC: 10718 total
|
|
=== 8.1 금지된 표면: 명령 이름을 받는 메서드가 없는가 ===
|
|
$ grep -rn 'execute(String\|command(String\|dispatch(String' adapter/outbound/cache-redis/src/main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations | head
|
|
adapter/outbound/cache-redis/src/main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/RedisCommandGateway.java:34: * execute(String, byte[]...)} surface cannot appear here either.
|
|
exit=0
|
|
|
|
$ grep -c 'CompletionStage' adapter/outbound/cache-redis/src/main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/RedisCommandGateway.java
|
|
119
|
|
exit=0
|
|
|
|
$ grep -oE '^ CompletionStage<[^>]*(<[^>]*>)?[^>]*> [a-zA-Z]+\(' adapter/outbound/cache-redis/src/main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/RedisCommandGateway.java | wc -l
|
|
114
|
|
exit=0
|
|
|
|
=== 8.2 두 프로그래밍 모델이 같은 request builder를 지나는가 ===
|
|
$ grep -l 'OperationRequests\.' adapter/outbound/cache-redis/src/main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/Lettuce*.java | wc -l
|
|
0
|
|
exit=0
|
|
|
|
$ grep -ho '[A-Za-z]*OperationRequests\.' adapter/outbound/cache-redis/src/main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceRedisValueOperations.java adapter/outbound/cache-redis/src/main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceReactiveRedisValueOperations.java | sort | uniq -c
|
|
exit=0
|
|
|
|
$ grep -n 'RedisOperationContext' adapter/outbound/cache-redis/src/main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceRedisValueOperations.java adapter/outbound/cache-redis/src/main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceReactiveRedisValueOperations.java | head -6
|
|
adapter/outbound/cache-redis/src/main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceRedisValueOperations.java:30: RedisOperationContext context,
|
|
adapter/outbound/cache-redis/src/main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceReactiveRedisValueOperations.java:37: RedisOperationContext context,
|
|
exit=0
|
|
|
|
=== 8.3 in-memory double이 실제 gateway와 같은 계약을 구현하는가 ===
|
|
$ grep -n 'class InMemoryRedisCommandGateway' -A 3 adapter/outbound/cache-redis/src/test/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/InMemoryRedisCommandGateway.java
|
|
60:final class InMemoryRedisCommandGateway implements RedisCommandGateway {
|
|
61-
|
|
62- private final Map<String, Entry> entries = new TreeMap<>();
|
|
63-
|
|
exit=0
|
|
|
|
$ diff <(grep -oE '[a-zA-Z]+\(byte\[\]|[a-zA-Z]+\(List<byte' adapter/outbound/cache-redis/src/main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/RedisCommandGateway.java | sort -u | head -60) <(grep -oE '[a-zA-Z]+\(byte\[\]|[a-zA-Z]+\(List<byte' adapter/outbound/cache-redis/src/test/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/InMemoryRedisCommandGateway.java | sort -u | head -60) | head -30
|
|
0a1,2
|
|
> Entry(byte[]
|
|
> HashEntry(byte[]
|
|
4d5
|
|
< bitPosition(byte[]
|
|
9d9
|
|
< expireAt(byte[]
|
|
11d10
|
|
< geoDistance(byte[]
|
|
20d18
|
|
< hashExpireFields(byte[]
|
|
37d34
|
|
< listBlockingPop(List<byte
|
|
39d35
|
|
< listMove(byte[]
|
|
47a44
|
|
> numbers(List<byte
|
|
60a58,60
|
|
> setUnion(List<byte
|
|
> sortedSetCountByScore(byte[]
|
|
> sortedSetIncrementScore(byte[]
|
|
exit=0
|
|
|
|
=== 8.4 응답 예산이 실제로 강제되는가 ===
|
|
$ git grep -c 'requireReplyWithinBudget' -- 'adapter/outbound/cache-redis/src/main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations' | head -20
|
|
adapter/outbound/cache-redis/src/main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/BitmapOperationRequests.java:1
|
|
adapter/outbound/cache-redis/src/main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/GeoOperationRequests.java:1
|
|
adapter/outbound/cache-redis/src/main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/HashOperationRequests.java:1
|
|
adapter/outbound/cache-redis/src/main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/KeyOperationRequests.java:1
|
|
adapter/outbound/cache-redis/src/main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/ListOperationRequests.java:1
|
|
adapter/outbound/cache-redis/src/main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/RedisOperationContext.java:1
|
|
adapter/outbound/cache-redis/src/main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/SetOperationRequests.java:1
|
|
adapter/outbound/cache-redis/src/main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/SortedSetOperationRequests.java:2
|
|
adapter/outbound/cache-redis/src/main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/ValueOperationRequests.java:2
|
|
exit=0
|
|
|
|
$ git grep -n 'requireReplyWithinBudget' -- 'adapter/outbound/cache-redis/src/main' | wc -l
|
|
12
|
|
exit=0
|
|
|
|
=== 8.4b guard 통과가 실제로 강제되는가 ===
|
|
$ grep -n 'CommandPolicyGuard\|guard\.' adapter/outbound/cache-redis/src/main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceRedisCommandGateway.java | head -20
|
|
exit=0
|
|
|
|
$ grep -n 'class LettuceRedisCommandGateway' -B 25 adapter/outbound/cache-redis/src/main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations/LettuceRedisCommandGateway.java | sed -n '1,30p'
|
|
58-import io.lettuce.core.models.stream.StreamEntryDeletionResult;
|
|
59-import io.lettuce.core.output.NestedMultiOutput;
|
|
60-import io.lettuce.core.output.ScoredValueListOutput;
|
|
61-import io.lettuce.core.output.ValueListOutput;
|
|
62-import io.lettuce.core.protocol.CommandArgs;
|
|
63-import io.lettuce.core.protocol.CommandKeyword;
|
|
64-import io.lettuce.core.protocol.CommandType;
|
|
65-import io.lettuce.core.protocol.ProtocolKeyword;
|
|
66-import java.nio.charset.StandardCharsets;
|
|
67-import java.time.Duration;
|
|
68-import java.time.Instant;
|
|
69-import java.util.ArrayList;
|
|
70-import java.util.LinkedHashMap;
|
|
71-import java.util.List;
|
|
72-import java.util.Map;
|
|
73-import java.util.Objects;
|
|
74-import java.util.Optional;
|
|
75-import java.util.concurrent.CompletionStage;
|
|
76-
|
|
77-/**
|
|
78- * The only place in the SDK where a typed operation reaches Lettuce.
|
|
79- *
|
|
80- * <p>The driver is bound to {@code byte[]} keys and values on purpose: rendering and encoding have
|
|
81- * already happened in the typed layer, so nothing here can reinterpret a key or pick a codec.
|
|
82- */
|
|
83:public final class LettuceRedisCommandGateway implements RedisCommandGateway {
|
|
exit=0
|
|
|
|
=== 8.4c test 목록 ===
|
|
$ git ls-files 'adapter/outbound/cache-redis/src/test/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/lettuce/operations' | xargs -n1 basename
|
|
DeferringRedisCommandGateway.java
|
|
InMemoryGatewayAccess.java
|
|
InMemoryRedisCommandGateway.java
|
|
InMemoryRedisPubSubGateway.java
|
|
LiveRedisClusterTest.java
|
|
LiveRedisGuardrailTest.java
|
|
LiveRedisOperationsFixture.java
|
|
LiveRedisSentinelPromotionTest.java
|
|
RedisAdminPlaneContractTest.java
|
|
RedisBatchOperationsContractTest.java
|
|
RedisBitmapGeoOperationsContractTest.java
|
|
RedisExtensionModulesContractTest.java
|
|
RedisFunctionOperationsContractTest.java
|
|
RedisHashFieldExpirationContractTest.java
|
|
RedisHashOperationsContractTest.java
|
|
RedisKeyOperationsContractTest.java
|
|
RedisListOperationsContractTest.java
|
|
RedisOperationsFixture.java
|
|
RedisPubSubOperationsContractTest.java
|
|
RedisRawGatewayContractTest.java
|
|
RedisScriptOperationsContractTest.java
|
|
RedisSetOperationsContractTest.java
|
|
RedisSortedSetOperationsContractTest.java
|
|
RedisStreamDeletionCapabilityTest.java
|
|
RedisStreamOperationsContractTest.java
|
|
RedisTransactionContractTest.java
|
|
RedisTransactionSlotContractTest.java
|
|
RedisValueOperationsContractTest.java
|
|
exit=0
|
|
|