Skip to main content

Multi-node branding replication

In multi-node deployments with load balancing, branding assets must be available on all nodes for consistent user experience. This section describes how branding configuration replicates across nodes.

Storage locations

Branding assets are stored in two locations on each node:

  • design/custom/branding/ — The persistent source directory. This is the authoritative location for branding configuration and logo files.

  • ui/v2/assets/branding/ — The runtime directory served to the React UI. This is populated from the persistent source.

Replication behavior

The design/custom/branding/ directory is included in the standard Bravura Security Fabric file replication mechanism. When branding is configured on one node:

  1. The branding API writes files to both design/custom/branding/ and ui/v2/assets/branding/ on the node that received the request.

  2. The design/custom/branding/ directory replicates to other nodes via the standard node synchronization process.

  3. On each receiving node, the ui/v2/assets/branding/ directory is updated from the replicated source.

Ensuring consistency

To verify branding consistency across nodes:

  • Confirm that design/custom/branding/branding.json contains identical content on all nodes.

  • Verify that all logo files referenced in branding.json exist in ui/v2/assets/branding/ on each node.

  • If a node appears to serve stale branding, trigger a skin rebuild from the branding interface or manually copy the design/custom/branding/ contents to the affected node.

Failover considerations

If a node goes down and comes back up, it receives the latest branding files through the standard replication process. The React UI on that node will serve the correct branding once the ui/v2/assets/branding/branding.json file is in place.

If branding files are missing on a node (for example, after a fresh install on a new node), the React UI falls back to the default Bravura Security branding until replication completes.

Cache invalidation

Because logo files use hash-based filenames, cache invalidation across nodes is handled automatically. When a logo is updated, the new filename (with a different hash) ensures that browsers and any intermediate caches fetch the updated file regardless of which node serves the request.