CBOM Documentation

CBOM Secure

  • Product Overview
    • Overview
    • Dashboard Interface
    • Dashboard Operations
    • Data Visualization
    • Overview
    • Host
    • Template
      • Networked Deployments
      • Cloud Deployments
      • Off-Grid Deployments
    • Discovery History
      • Tags
      • Tag Scope
      • Integrations
      • Cloud Servers
      • CycloneDX Export
    • Sensors Reference
    • Overview
    • Summary Report
    • PQC Report
    • AI Services
    • Source Code Visualizer
    • Key
    • Certificate
    • CipherSuites
    • Analysis
    • Policy Management
    • User Policy
    • Standard Policy
    • Overview
    • Cases
    • Criteria
    • Notification Format
    • Rules
      • Connections
      • Health
    • User Management
    • Roles & Permissions
    • Audit Trail
    • System Logs
    • Top Bar and User Menu
    • System Configuration
  • Login and Authentication
    • Introduction
      • Components
      • Data Flows
      • Execution Models
      • Incremental Scanning
      • Security Model
      • Topologies
      • Sizing Guide
      • HA and Scaling
      • Ports and Firewall
      • Prerequisites
      • Docker Compose
      • Native on Linux
      • Deployment Server
      • Install Troubleshooting
      • Validation Checklist
      • Managing Services
      • Logging
      • Certificates
      • Configuration
      • Backup and Recovery
      • Ops Troubleshooting
      • Methods
      • SAML 2.0 SSO
      • OIDC and Entra ID
      • Token Authentication
      • Password Policy
      • Sensor vs Connector
      • Sensor Guide Structure
      • Capability Matrix
      • GitHub Sensor
        • AWS
        • Azure
        • Google Cloud
        • Active Directory
        • LDAP Directories
        • AD CS
        • Thales Luna HSM
        • Entrust nShield HSM
        • HashiCorp Vault KMIP
        • Windows Cert Store
        • Linux Trust Store
        • MSSQL TDE
      • Roadmap
      • Integration Model
      • CrowdStrike
      • ServiceNow
      • ServiceNow and Jira Setup
      • Notification Engine
  • Administrative Guide
    • Glossary
    • Configuration Reference
    • Data Model Reference
    • API Reference
    • API Authentication
    • CycloneDX Export Specification
    • Risk and PQC Scoring
    • Built-in Standards
    • Widget Catalogue
    • AI Services Data Handling

High Availability and Scaling

How CBOM Secure scales, what fails independently of what, and what a resilient deployment looks like at each tier. Read Sizing first for the capacity figures; this page covers shape rather than size.

What scales, and how

ComponentScaling modelNotes
Backend APIHorizontalStateless per request. Add instances behind a load balancer.
CollectorHorizontalStateless per request. Add instances, or place one per region.
Collector workerHorizontalCompeting consumers on the broker. Add workers to drain faster.
ConsoleHorizontalStatic assets. Trivially replicated or served from a CDN.
Reverse proxyHorizontalActive-active behind a virtual address.
DatabaseVertical, then replica set, then shardsThe component that governs the ceiling.
Identity providerHorizontal, clusteredShares its own datastore.
Message brokerClustered with quorum queues
Log storeVertical, then object storage backend
AI serviceHorizontalStateless. Conversation state is per session.

Session state is shared, not per process. A client's session resolves on any instance, so adding backend instances needs no sticky sessions at the load balancer.

Failure isolation

The platform is built so that the loss of one capability does not take the others with it. This is what makes a partial outage survivable.

Lost componentEffect
Discovery or ingestion pathThe existing inventory stays fully readable and reportable. New results queue rather than being lost.
Message brokerAgents spool results locally and republish when it returns. A scan is delayed, not destroyed.
Telemetry pipelineNo functional impact. Services fall back to local logging.
AI serviceNo impact on any other function.
Identity providerExisting sessions continue until expiry; new sign-ins fail.
DatabaseFull outage. This is the one component whose loss stops the platform.

The broker spool is the reason an ingestion outage is not a data-loss event. The agent writes results to its own disk before publishing and only removes them once every chunk is confirmed. An unreachable broker leaves the scan spooled on the target for a later attempt, rather than discarding work that took hours to produce.

Tier 1 — single node with cold standby

All services on one host. Resilience comes from backup and restore rather than redundancy.

        Operators, target hosts
                 |
                 v
        +------------------+
        |   Single node    |
        |  all services    |
        +------------------+
                 |
            daily backup
                 |
                 v
        +------------------+
        | Standby node     |   restore on failure
        +------------------+

Recovery is a restore, so the recovery time is the restore time. Exercise it; an untested restore is an assumption, not a plan.

Tier 2 — application and database separated

        Operators, target hosts
                 |
                 v
        +-------------------------+
        |    Application node     |
        |  proxy, API, collector, |
        |  console, broker, AI    |
        +-------------------------+
                 |
                 v
        +-------------------------+       +------------------+
        |     Database node       |<----->| Warm standby     |
        |  primary               |       | (optional replica)|
        +-------------------------+       +------------------+

Separating the database is the single most valuable step above Tier 1: it stops an analysis pass and a database compaction competing for the same memory, and it lets each be sized and tuned for what it actually does.

Add a database replica set here if the recovery objectives justify it. Two members plus an arbiter gives automatic failover; three full members gives failover and a read replica.

Tier 3 — role-separated with automatic failover

                     Operators, target hosts
                              |
                    +---------v---------+
                    |   Load balancer   |   active-active
                    +---------+---------+
                              |
            +-----------------+-----------------+
            |                                   |
   +--------v--------+                 +--------v--------+
   | Application 1   |                 | Application 2   |
   | proxy, API,     |                 | proxy, API,     |
   | collector, AI   |                 | collector, AI   |
   +--------+--------+                 +--------+--------+
            |                                   |
            +-----------------+-----------------+
                              |
        +---------------------v---------------------+
        |        Database replica set (3)           |
        |   primary  +  secondary  +  secondary     |
        |        automatic primary election         |
        +-------------------------------------------+
                              |
        +---------------------+---------------------+
        |                                           |
+-------v-------+                          +--------v-------+
| Identity node |                          | Observability  |
| clustered     |                          | node           |
+---------------+                          +----------------+

Quorum. A three-member replica set tolerates the loss of one member and elects a new primary automatically. It does not tolerate the loss of two: with one member left there is no majority and the set goes read-only. If the deployment spans availability zones, place the three members in three zones, not two.

Why the identity provider gets its own node. It is the only component whose brief unavailability blocks new sign-ins for everybody, and it has a very different resource profile from the rest — a JVM with a fixed heap, low CPU, no sustained disk. Isolating it stops a discovery burst from affecting sign-in.

Tier 4 — enterprise and multi-region

Above Tier 3 the changes are:

  • Sharded database. Two or more shards, each a three-member replica set, plus three config servers. Plan the shard key before deploying; changing it later is a migration.

  • Regional collectors. Place a collector and a broker in each region that scans, so result submission stays inside the region and only consolidated data crosses the WAN.

  • Autoscaled application tier. Three or more instances, scaled on request rate.

  • Multi-zone placement with a documented and exercised cross-region failover.

Size this from a capacity study rather than a table.

Scaling the discovery path

Discovery scales differently from the platform, because its limits are in the targets and the network rather than in CBOM Secure.

ConstraintHow to address it
Concurrent target hosts per taskConfigurable and bounded. Raise it to scan faster; keep it bounded so one task cannot exhaust the network or the target estate.
Ingestion throughputAdd collector workers. They are competing consumers, so throughput scales close to linearly until the database write path saturates.
Deduplication backlogRuns as a background pass. A backlog drains without operator action; watch its depth rather than its rate.
BandwidthAt least 10 Mbps per 1,000 concurrently scanning hosts.
Very large estatesStagger tasks rather than scanning everything at once. A weekly full-estate scan split across seven daily tasks gives the same coverage at a seventh of the peak.

What to monitor for capacity

SignalWhy it matters
Deposit backlog depthThe earliest indicator that ingestion is falling behind discovery.
Database working-set pressureThe point at which query latency starts to degrade, well before storage fills.
Storage utilisationCapacity, and headroom for compaction and restore.
Failed ingestion rateDistinguishes a throughput problem from an authentication or schema problem.
Failed discovery task rateUsually a target-side or credential problem rather than a platform one.
Analysis pass durationGrows with inventory; a good leading indicator for the next tier.

Recovery objectives by tier

TierRecovery timeData at riskMechanism
14 hours24 hoursRestore from backup to a standby node
22 hours4 hoursWarm standby application node; database restore or replica promotion
31 hour1 hourActive-active application tier; automatic database failover
430 minutes15 minutesMulti-zone, sharded, documented regional failover

These are the objectives the topology is capable of. Whether a given deployment meets them depends on its backup cadence and on whether the restore has been exercised — see Backup and Recovery.

Design rules worth keeping

  • Health checks on every long-running service, with automatic restart on failure.

  • Dependency-gated startup: nothing starts until what it depends on reports healthy. This prevents the cascade of confusing failures that follows a cold start in the wrong order.

  • Explicit resource limits on every service, so one cannot starve another.

  • An interrupted discovery task is safely re-runnable. Ingestion is idempotent on resubmission, so a re-run updates rather than duplicating.

  • Ingestion fails closed on an authentication error. There is no unauthenticated fallback path.

On this Page:
Support Privacy Policy Terms of Service

Copyright 2026 Encryption Consulting LLC. All rights reserved.