hardSystem Design

How do you guarantee idempotency in a queue consumer?

364 views
01

Understand the problem

Making at-least-once delivery safe to retry.

nodejsqueueidempotencyreliability
02

Attempt it yourself

Sketch your approach before reading the solution — that's what interviews test.

Stuck? AI Nudge Available

Get a conceptual hint to guide your logic without spoiling the final implementation.

03

Study the solution

The solution is waiting

Give it an honest attempt first — then compare your thinking with the full walkthrough.

04

Read the code

Dedupe with a unique key
async function handle(job) {
  try {
    await db.tx(async (t) => {
      await t.insert('processed_jobs', { id: job.id });  // unique PK
      await applyEffect(t, job);                          // same tx
    });
  } catch (e) {
    if (e.code === 'UNIQUE_VIOLATION') return;  // already handled → skip
    throw e;
  }
}
05

Join the discussion

Discussion (0)

Sign in to join the discussion.

No responses yet. Be the first to share what you think.