{
  "id": 18735744,
  "title": "Just how far can the FOR UPDATE SKIP LOCKED Postgres queue go?",
  "url": "https://urgent.news/2026/11/07/just-how-far-can-the-for-update-skip-locked-postgres-queue-go",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-11-07T15:20:23.000Z",
  "source": {
    "name": "Lobsters",
    "slug": "lobsters",
    "url": "https://garbagecollected.io/posts/postgres-task-queue-where-it-breaks/"
  },
  "original_language": "en",
  "account": "The design of the FOR UPDATE SKIP LOCKED Postgres queue system demonstrates impressive performance capabilities, particularly when utilizing a shared connection pool. Initial tests conducted on a Postgres instance limited to a single CPU showed the queue reaching a throughput of approximately 375 jobs per second with 64 workers actively processing tasks. This impressive figure is achieved before the system hits its maximum of 100 connection slots.\n\nHowever, the analysis reveals that this high level of throughput is not sustained indefinitely as the number of workers increases. Upon further examination, the system begins to falter at 64 workers, where the throughput plateaus at around 375 jobs per second despite having access to 128 workers. This plateau occurs precisely at the system's default limit of 100 connection slots, indicating a fundamental limitation in the design.\n\nAs the number of workers exceeds the available connection slots, the throughput drops significantly to around 200 jobs per second at 128 workers. This decline demonstrates that the system cannot effectively handle more than 100 concurrent connections, regardless of the number of workers attempting to process tasks. The median query time increases notably between 32 and 64 workers, and the p99 latency escalates dramatically, suggesting that the system struggles to maintain performance as the load grows beyond its capacity.\n\nIn summary, while the FOR UPDATE SKIP LOCKED Postgres queue offers a robust and durable solution for managing tasks with atomic guarantees, its effectiveness is inherently capped by the system's default connection limit of 100 slots. Beyond this threshold, the throughput and performance degrade rapidly, highlighting a critical design limitation that must be considered when scaling such systems.",
  "summary": null,
  "key_points": [
    "FOR UPDATE SKIP LOCKED queue achieves 375 jobs/second with 64 workers",
    "Throughput plateaus at 375 jobs/second at 100 connection slots limit",
    "Performance degrades significantly beyond 100 connection slots"
  ],
  "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."
}