{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://inquir.org/#organization","name":"Inquir","url":"https://inquir.org","logo":{"@type":"ImageObject","url":"https://inquir.org/favicon.png","width":256,"height":256}},{"@type":"WebSite","@id":"https://inquir.org/#website","name":"Inquir Compute","url":"https://inquir.org","publisher":{"@id":"https://inquir.org/#organization"}},{"@type":"WebPage","@id":"https://inquir.org/serverless-job-queue#webpage","url":"https://inquir.org/serverless-job-queue","name":"Serverless job queue without Redis, SQS, or a worker fleet","headline":"Serverless job queue without Redis, SQS, or a worker fleet","description":"Serverless job queue: enqueue from HTTP, webhooks, or cron with retries, dead-letter runs, and history—no Redis, SQS, or worker fleet.","inLanguage":"en-US","isPartOf":{"@id":"https://inquir.org/#website"},"breadcrumb":{"@id":"https://inquir.org/serverless-job-queue#breadcrumb"},"author":{"@id":"https://inquir.org/#organization"},"datePublished":"2025-11-01T00:00:00.000Z","dateModified":"2026-06-23T00:00:00.000Z","citation":{"@type":"CreativeWork","url":"https://inquir.org/docs"}},{"@type":"BreadcrumbList","@id":"https://inquir.org/serverless-job-queue#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://inquir.org/"},{"@type":"ListItem","position":2,"name":"Serverless job queue","item":"https://inquir.org/serverless-job-queue"}]},{"@type":"HowTo","@id":"https://inquir.org/serverless-job-queue#howto","name":"Serverless job queue without Redis, SQS, or a worker fleet","description":"Serverless job queue: enqueue from HTTP, webhooks, or cron with retries, dead-letter runs, and history—no Redis, SQS, or worker fleet.","inLanguage":"en-US","author":{"@id":"https://inquir.org/#organization"},"step":[{"@type":"HowToStep","position":1,"name":"Write the job handler","text":"Export a function that reads event.payload and returns structured output—the consumer side of the queue."},{"@type":"HowToStep","position":2,"name":"Enqueue from the producer","text":"From an HTTP handler or webhook, call global.durable.startNew(jobName, undefined, payload) and return immediately."},{"@type":"HowToStep","position":3,"name":"Configure retries and monitor","text":"Set retry policy on the pipeline step; watch execution history for stalled or failing jobs."}],"isPartOf":{"@id":"https://inquir.org/serverless-job-queue#webpage"}},{"@type":"FAQPage","@id":"https://inquir.org/serverless-job-queue#faq","url":"https://inquir.org/serverless-job-queue","isPartOf":{"@id":"https://inquir.org/serverless-job-queue#webpage"},"mainEntity":[{"@type":"Question","name":"Is this the same as AWS SQS?","acceptedAnswer":{"@type":"Answer","text":"SQS is a managed message queue you integrate via SDK. Inquir pipelines give similar enqueue-and-forget semantics tied to your function catalog—no separate queue service, IAM policies, or worker consumers to deploy."}},{"@type":"Question","name":"How do failed jobs behave?","acceptedAnswer":{"@type":"Answer","text":"Pipeline steps retry according to configured policy. Exhausted retries mark the run failed with logs—inspect in execution history without configuring a separate dead-letter queue."}},{"@type":"Question","name":"Can I enqueue from Python or Go handlers?","acceptedAnswer":{"@type":"Answer","text":"Yes. global.durable.startNew() works from Node.js handlers; other runtimes can POST to the pipeline trigger URL with the same payload shape."}}]}]}