Skip to content

[DOCS] Message queue backends (memory, sqlite, postgres, redis) #1007

Closed

Description

Summary

infer's message queue gains configurable backends through inference-gateway/cli PR 1555 (resolves inference-gateway/cli issue 1390): the process-local memory queue stays the default, and sqlite, postgres and redis reuse the existing storage. connection settings so queued work survives a restart and one queue can be shared by several infer processes. The CLI repo carries the user-facing docs in its own docs/ directory (docs/message-queue.md plus the configuration-reference queues entries); this ticket tracks mirroring the same operator story in the docs repo so operators find it there too.

Affected pages

  • The conversation storage / backend area: fold in or link the message queue backends (memory default, sqlite, postgres, redis) with queue.name scoping and the poll_interval wake-up
  • The configuration reference: queue.type, queue.name, queue.poll_interval and INFER_QUEUE_TYPE, INFER_QUEUE_NAME, INFER_QUEUE_POLL_INTERVAL
  • Any operators / distributed deployment page: sharing one queue across infer processes and feeding it from external producers

External producers contract (source of truth in the CLI docs)

  • Record format: JSON with role, content, source, request_id, queued_at
  • Redis: key infer:queue:, RPUSH to append to the tail, the consumer drains the head atomically
  • SQL: message_queue table (queue_name, role, content, source, request_id, queued_at), consumed with one DELETE ... RETURNING statement (PostgreSQL locks rows with FOR UPDATE SKIP LOCKED)

References

Acceptance Criteria

  • The docs site describes the message queue backends and their configuration keys
  • The configuration reference covers queue.* and the INFER_QUEUE_* environment variables
  • External producers have a documented record format, redis key and SQL table

Activity

  1. added theissue type on Oct 13, 2026
  2. edenreich commented on Oct 13, 2026

    @edenreich
    Contributor

    @claude Can you document this?

  3. inference-gateway-maintainer commented on Oct 13, 2026

    @inference-gateway-maintainer
    ContributorAuthor

    Claude finished @edenreich's task in 3m 6s —— View job • docs/issue-1007-20261013-1553 • Create PR ➔


    Done

    • Gather context (CLI docs/message-queue.md, local pages)
    • Add message queue backends doc content
    • Cover queue.* / INFER_QUEUE_* in the configuration reference
    • Validate (lint:md, format:check, build all pass)
    • Commit + open PR -> docs: document message queue backends #1009

    What changed

    Everything landed in cli.md, since the repo convention is that CLI features are sections of that page, not new cli-*.md pages.

    • New ### Message Queue section under Advanced Features, right after Conversation Management: backend table (memory default, sqlite, postgres, redis), which backends survive a restart or can be shared, and the storage.<type> block each reuses
    • Config reference for queue.type, queue.name, queue.poll_interval with their INFER_QUEUE_* overrides, plus those three added to the Essential Environment Variables block and a pointer line in Key Configuration Areas
    • Semantics: FIFO per scope, atomic drain, at-most-once delivery, startup failure on an unreachable backend (no silent fallback to memory), chat.status_bar.indicators.queue
    • External producers: JSON record format table, the infer:queue:<name> Redis list with an RPUSH example, and the message_queue table with an INSERT example plus the DELETE ... RETURNING / FOR UPDATE SKIP LOCKED drain
    • Cross-link from the Conversation Management storage backends list so the queue is reachable from the storage area

    Not done

    No infer operators / distributed deployment page exists here (operator.md is the gateway's Kubernetes operator), so the shared-queue and external-producer story lives in the new section rather than a separate operators page. Noted in the PR body.

    | Branch

  4. moved this from Todo to In progress in 2026on Oct 13, 2026
  5. moved this from In progress to QA in 2026on Oct 13, 2026
  6. moved this from QA to Done in 2026on Oct 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    Projects

    • Status
      Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions