{"product_id":"n8n-fifo-llm-queue-openai-chat-completions-postgres","title":"n8n FIFO LLM Queue: OpenAI Chat Completions + Postgres","description":"\u003ch3\u003eTurn any OpenAI-compatible chat into a durable FIFO queue—built for n8n + Postgres\u003c\/h3\u003e\n\u003cp\u003eThis n8n workflow acts as an \u003cstrong\u003en8n-first, durable FIFO gateway\u003c\/strong\u003e for a \u003cstrong\u003elocal OpenAI-compatible LLM\u003c\/strong\u003e. It accepts standard \u003cstrong\u003eOpenAI Chat Completions\u003c\/strong\u003e requests, stores them in \u003cstrong\u003ePostgreSQL\u003c\/strong\u003e, runs \u003cstrong\u003eone inference at a time\u003c\/strong\u003e, and returns \u003cstrong\u003eOpenAI-compatible JSON or SSE\u003c\/strong\u003e responses—so your automations never overwhelm your model.\u003c\/p\u003e\n\n\u003ch3\u003eWhat this workflow does\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eReceives requests\u003c\/strong\u003e via a secured POST webhook at \u003ccode\u003e\/v1\/chat\/completions\u003c\/code\u003e (header authentication).\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eClassifies incoming requests\u003c\/strong\u003e as either a new job submission or a control command (e.g., get result\/wait, cancel, list queue).\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eQueues jobs in PostgreSQL\u003c\/strong\u003e by storing submissions in a \u003ccode\u003ellm_queue_jobs\u003c\/code\u003e table (created during the manual setup trigger).\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eProcesses the queue FIFO\u003c\/strong\u003e by locking and claiming the oldest eligible queued job under PostgreSQL locks.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eCalls the upstream chat completions URL\u003c\/strong\u003e, persists success results, or schedules a bounded retry back into PostgreSQL.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eSupports retrieval endpoints\u003c\/strong\u003e:\n    \u003cul\u003e\n      \u003cli\u003eGET \u003ccode\u003e\/v1\/queue\/tasks\/:taskId\u003c\/code\u003e to return durable status, queue position, and any stored error details for a specific task.\u003c\/li\u003e\n      \u003cli\u003eGET \u003ccode\u003e\/v1\/models\u003c\/code\u003e to return configured comma-separated model identifiers without calling the upstream LLM.\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eRuns every 5 seconds\u003c\/strong\u003e to recover expired leases and continue processing.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eHandles streaming\u003c\/strong\u003e by framing responses as OpenAI SSE when \u003ccode\u003estream: true\u003c\/code\u003e is requested.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eUse cases\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003ePrevent concurrency spikes by funneling multiple n8n agents through a \u003cstrong\u003esingle-file FIFO LLM queue\u003c\/strong\u003e.\u003c\/li\u003e\n  \u003cli\u003eImplement \u003cstrong\u003etask-based retrieval\u003c\/strong\u003e so external systems can poll \u003ccode\u003e\/v1\/queue\/tasks\/:taskId\u003c\/code\u003e for completion.\u003c\/li\u003e\n  \u003cli\u003eUse OpenAI-compatible endpoints to integrate local LLMs with existing tooling that expects \u003ccode\u003e\/v1\/chat\/completions\u003c\/code\u003e.\u003c\/li\u003e\n  \u003cli\u003eRun multi-tenant SaaS automation safely by queueing requests in \u003cstrong\u003ePostgreSQL\u003c\/strong\u003e with durable state.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eTechnical details\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003en8n webhook endpoints: POST \u003ccode\u003e\/v1\/chat\/completions\u003c\/code\u003e, GET \u003ccode\u003e\/v1\/queue\/tasks\/:taskId\u003c\/code\u003e, GET \u003ccode\u003e\/v1\/models\u003c\/code\u003e\n\u003c\/li\u003e\n  \u003cli\u003eSecured via header authentication\u003c\/li\u003e\n  \u003cli\u003eNodes used: \u003cstrong\u003eif\u003c\/strong\u003e, \u003cstrong\u003eset\u003c\/strong\u003e, \u003cstrong\u003ecode\u003c\/strong\u003e, \u003cstrong\u003eno op\u003c\/strong\u003e, \u003cstrong\u003eswitch\u003c\/strong\u003e, \u003cstrong\u003ewebhook\u003c\/strong\u003e\n\u003c\/li\u003e\n  \u003cli\u003ePostgreSQL queue table: \u003ccode\u003ellm_queue_jobs\u003c\/code\u003e with indexes created via manual setup\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"N8N Commerce","offers":[{"title":"Default Title","offer_id":45962074226867,"sku":"N8N-19196","price":66.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/6279\/6723\/files\/VNQ2v4tdCsGtZidy3rpef_gfAtAsZH.png?v=1788599874","url":"https:\/\/buyflowscripts.com\/products\/n8n-fifo-llm-queue-openai-chat-completions-postgres","provider":"N8N Commerce","version":"1.0","type":"link"}