{
  "id": 9653707,
  "title": "@Cron fires on every replica. I found out the boring way",
  "url": "https://urgent.news/2026/09/24/cron-fires-on-every-replica-i-found-out-the-boring-way",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-09-24T23:15:00.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/ssinghakshit/cron-fires-on-every-replica-i-found-out-the-boring-way-8j6"
  },
  "original_language": "en",
  "account": "A scheduling issue caused a nightly job to create duplicate records in a system. The issue occurred because the in-process scheduler ran three instances simultaneously, each creating a new record. The developer moved the scheduling out of the app and into an external scheduler to resolve the problem. They kept the idempotency check as a failsafe. The change involved moving the scheduling logic behind an HTTP endpoint and implementing a shared secret to guard the endpoint against unauthorized access. The developer also adjusted the scheduling time to a fixed UTC hour to accommodate different time zones. The takeaway is that scheduling should be handled outside the app and that any exposed endpoint should have proper security measures in place.",
  "summary": "How an in-process scheduler turned one nightly job into N duplicate writes, and why I moved scheduling out of the app entirely. I was looking at staging data when I found two of something that should only ever exist once: two identical records for the same entity, same start date, created seconds apart. Not corrupted, not half-written. Just two, where there should have been one. The job that…",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}