-- broker_queueinstance table -- Tracks active and historical broker queue instances CREATE TABLE IF NOT EXISTS broker_queueinstance ( id_broker_queueinstance BIGSERIAL PRIMARY KEY, name VARCHAR(255) NOT NULL, hostname VARCHAR(255) NOT NULL, pid INTEGER NOT NULL, version VARCHAR(50) NOT NULL, status VARCHAR(20) NOT NULL DEFAULT 'active', started_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(), last_ping_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(), shutdown_at TIMESTAMP WITH TIME ZONE, queue_count INTEGER NOT NULL DEFAULT 0, jobs_handled BIGINT NOT NULL DEFAULT 0, CONSTRAINT broker_queueinstance_status_check CHECK (status IN ('active', 'inactive', 'shutdown')) ); -- Indexes CREATE INDEX IF NOT EXISTS idx_broker_queueinstance_status ON broker_queueinstance(status); CREATE INDEX IF NOT EXISTS idx_broker_queueinstance_hostname ON broker_queueinstance(hostname); CREATE INDEX IF NOT EXISTS idx_broker_queueinstance_last_ping ON broker_queueinstance(last_ping_at); -- Comments COMMENT ON TABLE broker_queueinstance IS 'Tracks broker queue instances (active and historical)'; COMMENT ON COLUMN broker_queueinstance.name IS 'Human-readable name of the broker instance'; COMMENT ON COLUMN broker_queueinstance.hostname IS 'Hostname where the broker is running'; COMMENT ON COLUMN broker_queueinstance.pid IS 'Process ID of the broker'; COMMENT ON COLUMN broker_queueinstance.status IS 'Current status: active, inactive, or shutdown'; COMMENT ON COLUMN broker_queueinstance.jobs_handled IS 'Total number of jobs handled by this instance';