Skip to main content

Deployment Layouts

The unit of deployment is the Smart Corridor node: one Hub, one dedicated VPP instance, the corridor services (CIGS, CBS, adapters, DbWorker), and the UI clients, shipped and started together from the official Docker Compose package. The Hub-to-VPP relationship is always 1:1 — never plan one VPP instance serving several Hubs, and never split the bundle across products. One node can still serve several physical units (corridor and e-gate lanes), distinguished by unit configuration.

Single node

The default layout for one site area: a single host (or small cluster) runs the whole bundle, cameras stream into the node's VPP, and consumers connect to the node's /graphql endpoint. This is the layout the First Deployment guide produces, and it carries most deployments — a node with several cameras covers a multi-lane corridor or a bank of gates.

Multiple nodes with a VPP master

When a deployment outgrows one node — several terminals, distant halls, or independent checkpoints — add more nodes, not more Hubs on one VPP. Each node keeps its own Hub + VPP pair, and the node-local VPP instances run as followers connected to a single VPP master using VPP's Master & Follower pattern. The master centralizes watchlist and subject management: enroll a traveler once and every node matches against the same data, while detection and matching stay local to each node so a WAN outage never stops a lane.

┌──────────────────┐
│ VPP master │ ← central watchlists & subjects
└───┬─────────┬────┘
(sync) │ │ (sync)
┌───────────────┴──┐ ┌──┴───────────────┐
│ Node A │ │ Node B │
│ Hub + VPP + CIGS │ │ Hub + VPP + CIGS │
│ + CBS + GUI │ │ + CBS + GUI │
└──────────────────┘ └──────────────────┘
cameras, lanes cameras, lanes

Choosing a layout

Start with a single node and scale by node count, not by stretching one node across locations. Rules of thumb: one node per site area that must operate autonomously; one VPP master per deployment when there is more than one node; integrations consume each node's Hub endpoint (events are per-node), while enrollment targets the master. Hardware per node is driven by camera count and processing type — see Hardware Sizing.