Multi-Site Architecture
The hub-and-spoke pattern for a group of plants — what belongs at the site, what belongs centrally, and how to keep them comparable.
An organisation running Infohub at several plants faces a design question that has a well-established answer: an instance per site, replicating a standardised subset upward to a central instance.
This article covers the shape and the decisions that make it work. The mechanisms are in Flow-to-Flow Replication and Template Servers and Federation.
The shape#
+---------------------+
| Central instance |
| group reporting |
| template library |
+------+------+-------+
^ ^ ^
replication | | |
+-----+--+ +-+----+ ++------+
| Site A | |Site B| |Site C |
| own | | | | |
| model | | | | |
+----+---+ +--+---+ +---+---+
| | |
historians, SQL, MES per site
Two flows in opposite directions, and both matter:
Data flows up. Each site replicates its standardised KPIs to the centre using the Flow consumer.
Standards flow down. The centre publishes templates that sites derive from, so the models are genuinely comparable.
A deployment with only the upward flow ends up comparing numbers that were calculated differently at each site. That is the most common failure in group reporting, and it is not discovered until someone questions a comparison.
Why not one central instance?#
Reading every site's historians from one central instance is simpler to draw and worse in practice.
A network outage stops everything. With site instances, a plant keeps collecting and reporting through a WAN failure; the central instance catches up when the link returns. With central-only, an outage is a permanent hole in that site's data.
Raw tag traffic across a WAN is expensive. Replicating a few hundred site KPIs is a fraction of reading tens of thousands of raw tags remotely.
Operators need local response. A control room dashboard served across a WAN is slow, and it is unavailable exactly when the site most needs it.
Historians are rarely reachable centrally. Plant networks are usually deliberately isolated, and getting historian protocol traffic across that boundary is a harder security conversation than Flow-to-Flow HTTPS.
The exception is a genuinely small estate — two or three sites on one good network, with modest models — where the operational simplicity of one instance may outweigh the resilience argument.
What belongs where#
The division that works:
| At the site | At the centre |
|---|---|
| Every connection to plant systems | No plant connections |
| The full detailed model | Only replicated site KPIs |
| Operational dashboards and shift reports | Group and regional reporting |
| Site-specific measures and events | Cross-site comparison and rollups |
| Manual entry by site staff | Group targets and budgets |
| Local notifications and alarms | Group-level exception reporting |
The rule of thumb: if only the site cares, it stays at the site. The central instance should be small and focused. A central instance that has accumulated every site's full model is unnavigable and slow, and nobody uses it for what it was built for.
Standardise the replicated subset#
The measures crossing the boundary must mean the same thing at every site. This is the hard part, and it is organisational as much as technical.
Practical approach:
1. Agree the group KPI set. A few dozen measures: production, availability, quality, energy per unit, cost per unit. Written down, with definitions — what counts as scheduled time, what counts as good product.
2. Template them centrally. Build the group KPI structure as templates, publish them from a template server, and have every site derive from them. That is what makes the calculations identical rather than merely similarly named.
3. Give it a dedicated home at each site. A Group Reporting folder containing exactly the replicated measures. The contract becomes visible and auditable, and the namespace filter has something clean to point at.
4. Replicate only that folder.
The Group Reporting folder is the contract. Making the replicated set an explicit folder rather than a filter expression means anyone at the site can see exactly what leaves, and anyone centrally can see exactly what should arrive. It also makes onboarding a new site a matter of instantiating templates into a known place.
Regional rollups#
Where the group is large, a middle tier helps: sites replicate to a regional instance, regions to a group instance.
Worth doing when there are enough sites that one central instance becomes a bottleneck, or when regions have genuine reporting autonomy. It adds a hop, another instance to license and maintain, and another place for staleness to hide — so do it when the organisation actually has regions, not speculatively.
Practical matters that get forgotten#
Every instance needs its own licence. Each site, each region, and the centre. Also test, training, and disaster recovery instances. Budget and request them together — a rollout that licenses the centre and forgets the sites stalls at the worst moment. See Licensing Infohub.
Server keys expire. Every replication link and every template server link has a credential with an expiry. Across twenty sites that is a lot of dates. Keep a register, and rotate ahead of expiry.
Time zones. A group spanning time zones needs an explicit decision about what "yesterday" means in a group report. Usually each site reports on its own calendar and the group aggregates the site's own daily figures — which is why replicating the site's already-calculated daily value is better than replicating raw data and recalculating centrally.
Version skew. Sites will not all upgrade on the same day. Understand which combinations you are prepared to run, and upgrade the centre in step with a policy rather than ad hoc.
Monitoring staleness#
The failure that matters most in a multi-site deployment is a site quietly stopping replication, because the central instance keeps reporting its last received values as current.
Build this deliberately at the centre:
- A measure per site tracking how recently its values arrived.
- A limit on it.
- A notification when a site goes quiet.
This is the single most valuable monitoring in the architecture. Without it, the group report is confidently wrong and nobody knows for days.
Onboarding a new site#
With the pattern established, a new site is largely mechanical:
- Install Infohub and create the database. Licence it.
- Link it to the central template server and derive the group KPI templates.
- Instantiate them into a
Group Reportingfolder. - Build the site's own local model — connections, detailed measures, dashboards.
- Configure the Flow consumer to the centre, filtered to
Group Reporting, with a server key issued for that site. - Verify at the centre that values arrive against the intended measures.
- Add the site to staleness monitoring.
- Add the site to the group reporting dashboards.
Steps 2 and 3 before step 4 is deliberate: get the group contract in place first, then build the site's own model around it.
Diagnosing#
| Symptom | Check |
|---|---|
| A site's data is stale | Replication at that site; server key expiry; staleness monitoring absent |
| Group figure disagrees with the site's own | Central measure recalculating instead of accepting the replicated value |
| Sites are not comparable | Not templated — each site calculated its KPIs differently |
| Central instance slow or unnavigable | Too much replicated; narrow the filter |
| A new site's values arrive under wrong measures | Naming mismatch; templates not used |
| Replication broke after a site rename | Name-based identity; coordinate renames |
| Central rollups wrong after a site correction | Expected — the correction propagated; verify it settled |