Bulk-authorize push devices before notification fan-out #725

Closed
opened 2026-08-13 09:20:23 +00:00 by timmy · 0 comments
Owner

Problem

Unread and deadline push delivery authorizes device sessions serially before bounded provider fan-out. Each device opens SQLite independently, delaying every healthy notification as subscriptions grow.

Product slice

Authorize claimed device management IDs in one bounded registry operation, reuse the status map across fan-out, prune inactive subscriptions, and remain fail-closed if the registry cannot be read. Apply the same behavior to unread updates and deadline reminders.

Acceptance criteria

  • One bulk session-registry read authorizes a dispatch batch; no per-device registry loop.
  • Active, idle, expired, revoked, and unknown devices preserve existing authorization semantics.
  • Inactive subscriptions are removed while active siblings still receive notifications.
  • Registry failure sends nothing, preserves subscriptions/checkpoints, releases leases, and permits retry.
  • Duplicate IDs and empty batches are deterministic.
  • Behavioral tests cover session-store, unread, and deadline paths and the full suite passes.
## Problem Unread and deadline push delivery authorizes device sessions serially before bounded provider fan-out. Each device opens SQLite independently, delaying every healthy notification as subscriptions grow. ## Product slice Authorize claimed device management IDs in one bounded registry operation, reuse the status map across fan-out, prune inactive subscriptions, and remain fail-closed if the registry cannot be read. Apply the same behavior to unread updates and deadline reminders. ## Acceptance criteria - One bulk session-registry read authorizes a dispatch batch; no per-device registry loop. - Active, idle, expired, revoked, and unknown devices preserve existing authorization semantics. - Inactive subscriptions are removed while active siblings still receive notifications. - Registry failure sends nothing, preserves subscriptions/checkpoints, releases leases, and permits retry. - Duplicate IDs and empty batches are deterministic. - Behavioral tests cover session-store, unread, and deadline paths and the full suite passes.
timmy self-assigned this 2026-08-13 09:20:23 +00:00
timmy closed this issue 2026-08-13 09:31:46 +00:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: stackchain/stackchain-dashboard#725
No description provided.