Skip to content
03

Data and messaging

State & Queue

PostgreSQL is the record. Redis moves work and live logs. It does not replace the database.

PostgreSQL stores platform state. Redis Sentinel carries Celery queues, locks, and live logs, including a separate aag queue.

Where it sits in the stack

  1. 01
    Access layer
  2. 02
    Control plane
  3. 03
    Data and messaging Focus
  4. 04
    Execution layer
  5. 05
    Managed targets
PostgreSQLRedis SentinelOutboxaag

How requests move

  1. 01

    The control plane writes the row in PostgreSQL

  2. 02

    The outbox places the task on a Redis queue

  3. 03

    A lock keeps two workers off the same contested task

  4. 04

    The worker claims the task and publishes progress

What this layer does

  • PostgreSQL for inventory, runs, waivers, and the audit log

  • Redis Sentinel for queues, locks, and live logs

  • A separate aag queue, apart from checks and remediation

  • Outbox delivery, and a dead-letter queue for a failed task

PostgreSQL holds inventory, profiles, job definitions, run history, waivers, the audit log, and AAG provider settings. The provider API key is stored encrypted.

Redis is the Celery broker, the result backend, the live-log channel, the schedule lock, and the limit on local login attempts. Sentinel is the highly available setup used by default in Compose.

Work is split across the compliance, remediation, inventory, maintenance, and aag queues. The outbox retries delivery if Redis is briefly unavailable. A failed worker task can be inspected in the dead-letter queue.