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>
97 lines
12 KiB
Plaintext
97 lines
12 KiB
Plaintext
Command: compile/run /tmp PostgreSqlReplaySemanticProbe against current postgresqlIntegrationTest resolved runtime classpath
|
|
Working directory: /shared/codebase/clean-architecture-backend-template
|
|
Executed at: 2026-08-29T08:40:58Z
|
|
Source revision: a24ece9cf797f7ea647e33bf846b115208ed1ba5
|
|
Observation boundary: Real PostgreSQL 16 Testcontainers execution of current same-store inbox and polling-outbox adapters. It isolates replay semantics and ownership; adapters are not automatically composed in the shipped application.
|
|
--- stdout/stderr ---
|
|
08:40:59.312 [main] INFO org.testcontainers.DockerClientFactory -- Testcontainers version: 2.0.5
|
|
08:40:59.481 [main] INFO org.testcontainers.dockerclient.DockerClientProviderStrategy -- Loaded org.testcontainers.dockerclient.UnixSocketClientProviderStrategy from ~/.testcontainers.properties, will try it first
|
|
08:40:59.846 [main] INFO org.testcontainers.dockerclient.DockerClientProviderStrategy -- Found Docker environment with local Unix socket (unix:///var/run/docker.sock)
|
|
08:40:59.860 [main] INFO org.testcontainers.DockerClientFactory -- Docker host IP address is 172.17.0.1
|
|
08:40:59.873 [main] INFO org.testcontainers.DockerClientFactory -- Connected to docker:
|
|
Server Version: 29.6.1
|
|
API Version: 1.55
|
|
Operating System: Ubuntu 24.04.4 LTS
|
|
Total Memory: 32008 MB
|
|
08:40:59.882 [main] INFO org.testcontainers.images.PullPolicy -- Image pull policy will be performed by: DefaultPullPolicy()
|
|
08:40:59.884 [main] INFO org.testcontainers.utility.ImageNameSubstitutor -- Image name substitution will be performed by: DefaultImageNameSubstitutor (composite of 'ConfigurationFileImageNameSubstitutor' and 'PrefixingImageNameSubstitutor')
|
|
08:40:59.934 [main] INFO tc.testcontainers/ryuk:0.14.0 -- Creating container for image: testcontainers/ryuk:0.14.0
|
|
08:40:59.937 [main] INFO org.testcontainers.utility.RegistryAuthLocator -- Failure when attempting to lookup auth config. Please ignore if you don't have images in an authenticated registry. Details: (dockerImageName: testcontainers/ryuk:0.14.0, configFile: /root/.docker/config.json, configEnv: DOCKER_AUTH_CONFIG). Falling back to docker-java default behaviour. Exception message: Status 404: No config supplied. Checked in order: /root/.docker/config.json (file not found), DOCKER_AUTH_CONFIG (not set)
|
|
08:41:00.032 [main] INFO tc.testcontainers/ryuk:0.14.0 -- Container testcontainers/ryuk:0.14.0 is starting: faa6ae58a0cc7e71cd7a48899b1577fef3241b725f28c5347a05e97b1e8ee1fe
|
|
08:41:00.281 [main] INFO tc.testcontainers/ryuk:0.14.0 -- Container testcontainers/ryuk:0.14.0 started in PT0.347332906S
|
|
08:41:00.285 [main] INFO org.testcontainers.utility.RyukResourceReaper -- Ryuk started - will monitor and terminate Testcontainers containers on JVM exit
|
|
08:41:00.285 [main] INFO org.testcontainers.DockerClientFactory -- Checking the system...
|
|
08:41:00.285 [main] INFO org.testcontainers.DockerClientFactory -- ✔︎ Docker server version should be at least 1.6.0
|
|
08:41:00.287 [main] INFO tc.postgres:16-alpine -- Creating container for image: postgres:16-alpine
|
|
08:41:00.336 [main] INFO tc.postgres:16-alpine -- Container postgres:16-alpine is starting: 3a87e7587a2e69ac45a40120ad47a9f1ed7739c4a733024ab6306cf5ae018e82
|
|
08:41:01.497 [main] INFO tc.postgres:16-alpine -- Container postgres:16-alpine started in PT1.210343551S
|
|
08:41:01.498 [main] INFO tc.postgres:16-alpine -- Container is started (JDBC URL: jdbc:postgresql://172.17.0.1:32777/test?loggerLevel=OFF)
|
|
08:41:01.507 [main] INFO com.zaxxer.hikari.HikariDataSource -- HikariPool-1 - Starting...
|
|
08:41:01.639 [main] INFO com.zaxxer.hikari.pool.HikariPool -- HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@452c8a40
|
|
08:41:01.640 [main] INFO com.zaxxer.hikari.HikariDataSource -- HikariPool-1 - Start completed.
|
|
08:41:01.855 [main] INFO org.flywaydb.core.FlywayExecutor -- Database: jdbc:postgresql://172.17.0.1:32777/test?loggerLevel=OFF (PostgreSQL 16.15)
|
|
08:41:01.894 [main] INFO org.flywaydb.core.internal.schemahistory.JdbcTableSchemaHistory -- Schema history table "public"."flyway_schema_history" does not exist yet
|
|
08:41:01.897 [main] INFO org.flywaydb.core.internal.command.DbValidate -- Successfully validated 9 migrations (execution time 00:00.017s)
|
|
08:41:01.908 [main] INFO org.flywaydb.core.internal.schemahistory.JdbcTableSchemaHistory -- Creating Schema History table "public"."flyway_schema_history" ...
|
|
08:41:01.966 [main] INFO org.flywaydb.core.internal.command.DbMigrate -- Current version of schema "public": << Empty Schema >>
|
|
08:41:01.975 [main] INFO org.flywaydb.core.internal.command.DbMigrate -- Migrating schema "public" to version "1 - idempotency record"
|
|
08:41:01.997 [main] INFO org.flywaydb.core.internal.command.DbMigrate -- Migrating schema "public" to version "3 - outbox event"
|
|
08:41:02.010 [main] INFO org.flywaydb.core.internal.command.DbMigrate -- Migrating schema "public" to version "4 - int lock"
|
|
08:41:02.019 [main] INFO org.flywaydb.core.internal.command.DbMigrate -- Migrating schema "public" to version "5 - int lock expired after"
|
|
08:41:02.028 [main] INFO org.flywaydb.core.internal.command.DbMigrate -- Migrating schema "public" to version "6 - capability schema registry adoption"
|
|
08:41:02.037 [main] INFO org.flywaydb.core.internal.command.DbMigrate -- Migrating schema "public" to version "9 - widen capability schema stream"
|
|
08:41:02.043 [main] INFO org.flywaydb.core.internal.command.DbMigrate -- Migrating schema "public" to version "10 - idempotency request hash varchar"
|
|
08:41:02.060 [main] INFO org.flywaydb.core.internal.command.DbMigrate -- Migrating schema "public" to version "11 - durable operation"
|
|
08:41:02.075 [main] INFO org.flywaydb.core.internal.command.DbMigrate -- Migrating schema "public" to version "12 - live event log"
|
|
08:41:02.086 [main] INFO org.flywaydb.core.internal.command.DbMigrate -- Successfully applied 9 migrations to schema "public", now at version v12 (execution time 00:00.051s)
|
|
08:41:02.112 [main] INFO org.flywaydb.core.FlywayExecutor -- Database: jdbc:postgresql://172.17.0.1:32777/test?loggerLevel=OFF (PostgreSQL 16.15)
|
|
08:41:02.117 [main] INFO org.flywaydb.core.internal.schemahistory.JdbcTableSchemaHistory -- Creating Schema History table "public"."flyway_jpa_core_history" with baseline ...
|
|
08:41:02.123 [main] INFO org.flywaydb.core.internal.command.DbBaseline -- Successfully baselined schema with version: 0
|
|
08:41:02.134 [main] INFO org.flywaydb.core.internal.command.DbValidate -- Successfully validated 3 migrations (execution time 00:00.003s)
|
|
08:41:02.137 [main] INFO org.flywaydb.core.internal.command.DbMigrate -- Current version of schema "public": 0
|
|
08:41:02.140 [main] INFO org.flywaydb.core.internal.command.DbMigrate -- Migrating schema "public" to version "1 - initialize or adopt"
|
|
08:41:02.145 [main] WARN org.flywaydb.core.internal.sqlscript.DefaultSqlScriptExecutor -- DB: relation "capability_schema_registry" already exists, skipping (SQL State: 42P07 - Error Code: 0)
|
|
08:41:02.151 [main] INFO org.flywaydb.core.internal.command.DbMigrate -- Migrating schema "public" to version "2 - widen capability schema stream"
|
|
08:41:02.155 [main] INFO org.flywaydb.core.internal.command.DbMigrate -- Successfully applied 2 migrations to schema "public", now at version v2 (execution time 00:00.007s)
|
|
08:41:02.171 [main] INFO org.flywaydb.core.FlywayExecutor -- Database: jdbc:postgresql://172.17.0.1:32777/test?loggerLevel=OFF (PostgreSQL 16.15)
|
|
08:41:02.175 [main] INFO org.flywaydb.core.internal.schemahistory.JdbcTableSchemaHistory -- Creating Schema History table "public"."flyway_jpa_inbox_history" with baseline ...
|
|
08:41:02.181 [main] INFO org.flywaydb.core.internal.command.DbBaseline -- Successfully baselined schema with version: 0
|
|
08:41:02.190 [main] INFO org.flywaydb.core.internal.command.DbValidate -- Successfully validated 2 migrations (execution time 00:00.002s)
|
|
08:41:02.193 [main] INFO org.flywaydb.core.internal.command.DbMigrate -- Current version of schema "public": 0
|
|
08:41:02.196 [main] INFO org.flywaydb.core.internal.command.DbMigrate -- Migrating schema "public" to version "1 - initialize same store inbox"
|
|
08:41:02.206 [main] INFO org.flywaydb.core.internal.command.DbMigrate -- Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.007s)
|
|
08:41:02.221 [main] INFO org.flywaydb.core.FlywayExecutor -- Database: jdbc:postgresql://172.17.0.1:32777/test?loggerLevel=OFF (PostgreSQL 16.15)
|
|
08:41:02.225 [main] INFO org.flywaydb.core.internal.schemahistory.JdbcTableSchemaHistory -- Creating Schema History table "public"."flyway_jpa_outbox_storage_history" with baseline ...
|
|
08:41:02.230 [main] INFO org.flywaydb.core.internal.command.DbBaseline -- Successfully baselined schema with version: 0
|
|
08:41:02.239 [main] INFO org.flywaydb.core.internal.command.DbValidate -- Successfully validated 2 migrations (execution time 00:00.002s)
|
|
08:41:02.241 [main] INFO org.flywaydb.core.internal.command.DbMigrate -- Current version of schema "public": 0
|
|
08:41:02.248 [main] INFO org.flywaydb.core.internal.command.DbMigrate -- Migrating schema "public" to version "1 - initialize or adopt"
|
|
08:41:02.250 [main] WARN org.flywaydb.core.internal.sqlscript.DefaultSqlScriptExecutor -- DB: relation "outbox_event" already exists, skipping (SQL State: 42P07 - Error Code: 0)
|
|
08:41:02.250 [main] WARN org.flywaydb.core.internal.sqlscript.DefaultSqlScriptExecutor -- DB: relation "ix_outbox_event_eligible" already exists, skipping (SQL State: 42P07 - Error Code: 0)
|
|
08:41:02.251 [main] WARN org.flywaydb.core.internal.sqlscript.DefaultSqlScriptExecutor -- DB: relation "ix_outbox_event_aggregate_occurred" already exists, skipping (SQL State: 42P07 - Error Code: 0)
|
|
08:41:02.251 [main] WARN org.flywaydb.core.internal.sqlscript.DefaultSqlScriptExecutor -- DB: relation "ix_outbox_event_published_occurred" already exists, skipping (SQL State: 42P07 - Error Code: 0)
|
|
08:41:02.251 [main] WARN org.flywaydb.core.internal.sqlscript.DefaultSqlScriptExecutor -- DB: relation "ix_outbox_event_status_occurred" already exists, skipping (SQL State: 42P07 - Error Code: 0)
|
|
08:41:02.278 [main] INFO org.flywaydb.core.internal.command.DbMigrate -- Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.026s)
|
|
08:41:02.292 [main] INFO org.flywaydb.core.FlywayExecutor -- Database: jdbc:postgresql://172.17.0.1:32777/test?loggerLevel=OFF (PostgreSQL 16.15)
|
|
08:41:02.295 [main] INFO org.flywaydb.core.internal.schemahistory.JdbcTableSchemaHistory -- Creating Schema History table "public"."flyway_jpa_outbox_polling_history" with baseline ...
|
|
08:41:02.301 [main] INFO org.flywaydb.core.internal.command.DbBaseline -- Successfully baselined schema with version: 0
|
|
08:41:02.309 [main] INFO org.flywaydb.core.internal.command.DbValidate -- Successfully validated 2 migrations (execution time 00:00.002s)
|
|
08:41:02.312 [main] INFO org.flywaydb.core.internal.command.DbMigrate -- Current version of schema "public": 0
|
|
08:41:02.315 [main] INFO org.flywaydb.core.internal.command.DbMigrate -- Migrating schema "public" to version "1 - initialize polling delivery v2"
|
|
08:41:02.327 [main] INFO org.flywaydb.core.internal.command.DbMigrate -- Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.009s)
|
|
inboxForgedReplay.outcome=PROCESSING_STARTED
|
|
inboxForgedReplay.returnedActualToken=true
|
|
inboxForgedReplay.returnedForgedToken=false
|
|
inboxForgedReplay.completeWithReturnedOwner=COMPLETED
|
|
inboxRetention.first=RETRYABLE
|
|
inboxRetention.secondDifferentRetention=ALREADY_APPLIED_SAME_OPERATION
|
|
inboxRetention.remainingHours=1.000
|
|
outboxRetry.first=RETRY_SCHEDULED
|
|
outboxRetry.secondDifferentSchedule=ALREADY_APPLIED_SAME_OPERATION
|
|
outboxRetry.storedEqualsFirst=true
|
|
outboxRetry.storedEqualsSecond=false
|
|
08:41:02.439 [main] INFO com.zaxxer.hikari.HikariDataSource -- HikariPool-1 - Shutdown initiated...
|
|
08:41:02.441 [main] INFO com.zaxxer.hikari.HikariDataSource -- HikariPool-1 - Shutdown completed.
|
|
|
|
Exit code: 0
|