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:   * <p>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<ReconciliationJob> 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: * <p>Claiming is {@code FOR UPDATE SKIP LOCKED} inside the select, for the same reason the delivery
50:      FOR UPDATE SKIP LOCKED
113:  public List<ReconciliationJob> claimDue(int limit, Instant now) {

=== admin atomic-claim production calls ===
=== admin actual read/save calls ===
94:    Optional<AdminOperationResult> replayed = operations.findByOperationId(command.operationId());
145:          return operations.save(result, actor, "ADMIN_REDRIVE");
154:    Optional<AdminOperationResult> replayed = operations.findByOperationId(command.operationId());
194:    return operations.save(result, actor, "ADMIN_RECONCILE");
203:    Optional<AdminOperationResult> replayed = operations.findByOperationId(command.operationId());
272:          return operations.save(
282:    Optional<AdminOperationResult> 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',
