Host, Control Backend, and Federation
The semantic model of Librux is subsystem-to-subsystem interaction.
Application code should primarily think in terms of.
- which subsystem provides a capability
- which subsystem consumes that capability
- which semantic surface is being used, such as Event, Control, Procedure, or Operation
That semantic model stays valid even when the deployment grows across multiple machines.
Why This Architectural Layer Exists
A practical robot system rarely remains one sealed software stack on one machine for long.
Semantically, Librux wants the system to be understood as a set of cooperating subsystems.
Architecturally, those subsystems need real execution environments.
- component compute machines
- gateway or field-interface machines
- perception compute nodes
- UI or supervisory nodes
- diagnostics or integration nodes
In other words, the semantic unit is the subsystem, but the deployment has to be organized around real machines and network boundaries.
For that reason, a real robot system usually grows into a distributed system shape even if it starts from a smaller local deployment. Different hardware interfaces, compute requirements, isolation needs, and network boundaries push different subsystem roles toward different machines.
This does not mean Librux requires every deployment to span multiple machines from day one. Single-machine composition is supported. But the architecture is designed around the fact that many practical robot systems eventually need multiple machines.
Once Librux is deployed in that kind of environment, the system needs architectural boundaries for these concerns.
- machine-local subsystem lifecycle
- status aggregation
- route metadata
- remote visibility
- cross-machine forwarding and relay policy
That is why Librux introduces three architectural concepts.
- a host as the deployment boundary
- a control backend as the host-level control plane
- federation as the cross-machine relation
These concepts solve deployment and network structure efficiently without changing the semantic model that user code sees.
Host
A host is the machine that runs one deployment unit of the robot system.
It is the place where Librux groups together.
- one control backend instance
- one or more local subsystems
- managed subsystem packages and resource leases
- local transport paths
- optional host-level time-sync processes
So while the semantic model is subsystem-oriented, the deployment boundary is host-oriented.
Control Backend
The control backend is the control plane for one host.
It owns the following.
- subsystem registration and status aggregation
- managed package launch and host-local resource authority
- host-level discovery and route metadata
- remote visibility of local subsystem capability
- cross-host forwarding and relay policy
- browser-facing or API-facing status surfaces
This is why a subsystem does not need to own remote machine topology directly in application code.
Federation
Federation is the relation between hosts.
It does not mean that a subsystem itself stretches across hosts. It means the following.
- one host exports the relevant visibility of its local subsystems
- another host learns that visibility through its control backend
- remote delivery and control are resolved through the host-level runtime path
So the user-facing semantics are subsystem-to-subsystem, but the actual cross-host realization is host-to-host through control-managed federation.
Federation security also belongs at this host-to-host boundary. Subsystems do not manage peer keys or encrypted sockets directly. When enabled, the control backend wraps federation frames with a lightweight secure transport layer before they leave the host runtime.
Architectural View
In this architecture.
- each host runs one control backend
- each control backend manages multiple host-local subsystems
- federation is shown as the host-topology layer, not as a named subsystem interface
- the multi-host deployment is one robot system, not several unrelated systems
- solid lines show physical host-local relation
- thick lines show the federation relation between hosts
- dotted lines show example semantic relations between subsystems
This is the same robot-system idea shown in Subsystems, Roles, And Interfaces, now drawn with its deployment boundaries. Federation is not a named interface between control backends. It is the architectural relation that allows one robot system to span multiple hosts.
Why This Separation Matters
This split keeps two things true at once.
- user code can stay focused on subsystem capability and semantic intent
- the runtime can handle real multi-host deployment concerns at the host boundary
That separation is one of the main reasons Librux can keep the same subsystem model across local and federated deployments.