Reliable Reminder Delivery Relies on Durable Records and Idempotent Processing
The article recommends storing each user reminder as a durable database record, with a scheduler and queue used only to locate and hand off due work. It explains that in-process timers are fragile because they vanish on deploys and create ambiguity when several processes run. Each reminder should carry a UTC due time, the user's local time and IANA time zone, a state, and a stable idempotency key tied to the intended message rather than each attempt. Because schedulers, queues, providers, and webhook senders can all repeat work, the design aims for repeated operations to converge on one recorded delivery. Techniques such as short-lived claims, FOR UPDATE SKIP LOCKED, and outbox rows help prevent lost or duplicated sends.
This is an AI-generated summary. ShortSingh links to the original source for the complete article.
Discussion (0)
Log in to join the discussion and vote.
Log in