{
  "id": 84257,
  "title": "My deploy check waits 60 seconds. My outage alarm waits 5. I measured neither.",
  "url": "https://urgent.news/2026/08/03/my-deploy-check-waits-60-seconds-my-outage-alarm-waits-5-i-measured",
  "topic": "world",
  "section": "World",
  "published": "2026-08-03T12:30:00.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/fromzerotoship/my-deploy-check-waits-60-seconds-my-outage-alarm-waits-5-i-measured-neither-3cid"
  },
  "original_language": "en",
  "account": "Two distinct numbers emerged from my systems during my investigation: the deploy check and the outage alarm. The deploy check verifies if pages are live and retries up to three times, waiting 20 seconds between each attempt, tolerating up to a minute before flagging an issue. The outage alarm, however, initiates only after a 5-second wait and a single retry. These numbers were not intentionally chosen but rather discovered through an accidental process. The deploy check has a well-documented origin story, having been implemented when nine pages were deployed, with a check performed immediately after. When four returned 404, it was realized that the issue was due to CDN propagation, which resolved itself after 20 seconds. Consequently, a retry loop with three attempts was created to ensure accuracy. The choice of 20 seconds as the retry interval was arbitrary, as it was the first interval where false alarms ceased. This tolerance was selected based on trial and error, without considering the actual duration of propagation or recording the data. The outage alarm, on the other hand, follows a straightforward approach with a single retry after 5 seconds. The deploy check and the outage alarm were found to have no shared configuration or retry policies, indicating that the numbers were not derived from a common source. This lack of shared configuration also suggests that there were no version controls, reviews, or easy references for these numbers. Upon investigating further, I discovered over 40 different timeout and retry values scattered throughout the codebase, each chosen by individual developers based on personal preferences and experiences. These values had never been compared or standardized, leading to a situation where each number was created independently and without systematic reasoning. This led me to consider two main issues with these constants. The first issue concerns the drift of constants, where numbers are set based on specific circumstances but fail to adapt as conditions change. The second issue arises from constants being born wrong and never exposed to testing or evaluation. In my case, most of these constants fall into the first category, with the potential for drift. To address these issues, I propose establishing a birth certificate for each threshold, including when it was set, the distribution of values at that moment, and the allowed drift before triggering an alert. Additionally, a rule must be fixed before its execution to create a versioned and reviewable mechanism that records changes rather than silently adjusting them. Lastly, it is crucial to provide visibility into the actual value and verdict, rather than merely displaying a pass or fail outcome. By implementing these measures, the system can better account for the nuances of system behavior and ensure that constants are set with a clear understanding of their origin and impact.",
  "summary": "Two numbers from my own systems, side by side. When I deploy, a check confirms the pages are actually live. It retries three times, twenty seconds apart, so it tolerates up to a minute of \"not there yet\" before calling anything wrong. When my monitor decides whether production is down , it waits five seconds and retries once. The check that guards the more consequential claim is the more…",
  "key_points": [
    "Deploy check retries up to three times with 20-second intervals",
    "Outage alarm initiates after 5-second wait and single retry",
    "Over 40 independent timeout and retry values scattered throughout codebase"
  ],
  "editors_take": null,
  "illustration": "https://urgent.news/ill/84257.png",
  "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."
}