Basic architecture

The simplest Helix Server configuration consists of a client application and server application communicating over a TCP/IP connection. The server application manages a single repository that consists of one or more depots. A client application communicates with the server to allow the user to view:

  • trees of versioned files
  • repository metadata (file history, users, groups, labels, permissions)

Clients also manage local workspaces (local directories) that contain a subset of the files in the repository. Users can view, check out, and modify these local files and submit changes back to the repository. Versioned files are stored on the server in depots of various types, such as:

  • local
  • stream (Helix Core Command-Line (P4) Guide covers Streams in depth)
  • graph, which supports Git repos (see Work with Git)

Single server

Administrators support this architecture by installing and configuring the server, setting up users and security, monitoring performance, managing the resources used by the server, and customizing the behavior of the server.


To learn about advanced options for servers and services, such as commit, edge, proxy, broker, and replica, see Deployment architecture.

If you want a way to work disconnected from a shared central server, see also "Centralized and distributed architecture" in Using Helix Core for Distributed Versioning (DVCS).