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',