Skip to main content
Version: 029-rc5

Pantavisor Architecture

At a high level, Pantavisor is just in charge of two things: container orchestration and communication with the outside world.

Container Orchestration​

The software that is running in a Pantavisor-enabled device at a certain moment is called a revision. A revision is composed by a BSP and a number of containers. Pantavisor is able to go from the current running revision to a new revision in a transactional manner.

Revisions, as well as other relevant data, are stored on-disk in the device to make them persistent.

Communication with the Outside World​

Pantavisor-enabled devices need to communicate with the outside world to consume new updates, exchange metadata or send logs. Users can achieve this remotely as well as locally.

Customisation​

Pantavisor can be set up in different ways, offering multi-level configuration as well as several operational init modes. System behaviour can also be extended through system hooks: executable scripts that Pantavisor runs at well-defined lifecycle points — such as system start, update installation, and platform ready — allowing operators to integrate custom logic into the system lifecycle.

Service Mesh​

Containers running in the same revision can communicate with each other through pv-xconnect, Pantavisor's built-in service mesh. It handles service discovery and resource injection (Unix sockets, D-Bus, DRM, Wayland) between containers in a secure and declarative way. See xconnect.

State Machine​

To get a very simplified view on how Pantavisor works, you can take a look at its state machine:

Each state can be summarized as: