PostgreSQL holds inventory, profiles, job definitions, run history, waivers, the audit log, and AAG provider settings. The provider API key is stored encrypted.
Data and messaging
State & QueuePostgreSQL 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
- 01 Access layer
- 02 Control plane
- 03Data and messaging Focus
- 04 Execution layer
- 05 Managed targets
How requests move
- 01
The control plane writes the row in PostgreSQL
- 02
The outbox places the task on a Redis queue
- 03
A lock keeps two workers off the same contested task
- 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
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.