Notification reachability / test-gap snapshot revision=a24ece9cf797f7ea647e33bf846b115208ed1ba5 generatedAt=2026-08-29T12:15:33Z === dispatch post-provider call path === 161: if (!leases.stillHeld(lease)) { 169: submitOutsideTransaction(attempt, profile, contactPoint, content, work); 173: () -> recorder.record(attempt, work.recipient(), result, clock.instant())); 176: applyNextAction(work, recorded, next, clock.instant(), lease); 198: private ProviderSubmissionResult submitOutsideTransaction( 412: private void applyNextAction( 135: recipients.save(updated); === fenced repository predicates === 59: *

The counterpart of {@link #renewLease}, for the write that happens *after* the provider 82: int saveProjectionHeldBy( 107: int transitionHeldBy( 134: + "AND lease_until > :now", 136: int renewLease( 154: + "AND lease_until > :now", 156: long countHeldBy( === reconciliation runtime transaction shape === 81: List due = jobs.claimDue(batchSize, clock.instant()); 83: for (ReconciliationJob job : due) { 91: jobs.reschedule( 103: jobs.reschedule(job, "MAX_ATTEMPTS", clock.instant().plus(retryBackoff)); 104: jobs.complete(job); 107: ReconciliationResult result = reconciler.apply(job.attemptId()); 110: jobs.complete(job); 115: jobs.complete(job); 119: jobs.reschedule(job, "STILL_UNKNOWN", stillUnknown.nextCheckAt()); 124: jobs.reschedule(job, failed.code(), clock.instant().plus(retryBackoff)); 127: jobs.complete(job); 25: *

Claiming is {@code FOR UPDATE SKIP LOCKED} inside the select, for the same reason the delivery 50: FOR UPDATE SKIP LOCKED 113: public List claimDue(int limit, Instant now) { === admin atomic-claim production calls === === admin actual read/save calls === 94: Optional replayed = operations.findByOperationId(command.operationId()); 145: return operations.save(result, actor, "ADMIN_REDRIVE"); 154: Optional replayed = operations.findByOperationId(command.operationId()); 194: return operations.save(result, actor, "ADMIN_RECONCILE"); 203: Optional replayed = operations.findByOperationId(command.operationId()); 272: return operations.save( 282: Optional replayed = operations.findByOperationId(command.operationId()); 328: return operations.save(result, actor, "ADMIN_PROVIDER_STATE"); === schema revision writes after V4 === src/adapter/outbound/persistence-jpa/src/main/resources/db/migration/jpa/notification-platform/V4__notification_platform_alignment_and_activation.sql:201: feature_revision, src/adapter/outbound/persistence-jpa/src/main/resources/db/migration/jpa/notification-platform/V4__notification_platform_alignment_and_activation.sql:205: 'jpa-notification-platform-v4',