// Injected temporarily into PostgreSqlIdempotencyIntegrationTest for analysis only. @Test void analysisProbeCompleteReplayTtlSemantics() { IdempotencyOwner executing = claimAndStart("claim-complete-ttl-probe", "start-complete-ttl-probe"); OperationId operation = new OperationId("complete-ttl-probe"); StoredResponse response = new StoredResponse("same-response"); IdempotencyCompleteOutcome first = transactions.execute( ignored -> store.complete(executing, response, Duration.ofHours(1), operation)); IdempotencyCompleteOutcome differentTtl = transactions.execute( ignored -> store.complete(executing, response, Duration.ofHours(9), operation)); Long storedSeconds = jdbc.queryForObject( "select extract(epoch from (replay_until - updated_at))::bigint from idempotency_record where scope_hash = ?", Long.class, SCOPE.digest()); System.out.println("completeReplayTtl.first=" + first); System.out.println("completeReplayTtl.secondDifferentTtl=" + differentTtl); System.out.println("completeReplayTtl.storedSeconds=" + storedSeconds); } @Test void analysisProbeExpiredCompletedInspection() { IdempotencyClaimAttempt attempt = store.newClaimAttempt(new OperationId("claim-expired-inspect")); IdempotencyClaimOutcome claim = transactions.execute(ignored -> store.claim(request(attempt, Duration.ofSeconds(5)))); IdempotencyOwner claimed = ((IdempotencyClaimOutcome.Acquired) claim).owner(); IdempotencyOwner executing = transactions.execute(ignored -> store.markExecutionStarted(claimed, new OperationId("start-expired-inspect")).owner().orElseThrow()); transactions.execute(ignored -> store.complete( executing, new StoredResponse("expired-response"), Duration.ofMillis(25), new OperationId("complete-expired-inspect"))); jdbc.queryForObject("select pg_sleep(0.05)", Object.class); var inspection = store.inspect(new IdempotencyInspectionRequest(SCOPE, FINGERPRINT, attempt)); IdempotencyClaimOutcome newClaim = transactions.execute(ignored -> store.claim(request( store.newClaimAttempt(new OperationId("claim-after-expired-inspect")), Duration.ofSeconds(5)))); System.out.println("expiredInspect.outcome=" + inspection.outcome()); System.out.println("expiredInspect.replayUntil=" + inspection.replayUntil().orElse(null)); System.out.println("expiredInspect.claimAfterExpiry=" + newClaim.getClass().getSimpleName()); }