Skip to main content

Entities

Entities are the core components of Hathora that you’ll interact with when building and deploying games. This page defines each entity and their nested relationships to each other.

entities

Team

A team is the top level entity in Hathora used to manage billing, control access by adding and removing members, and share development environments.

When you create a Hathora account, you're automatically added as an admin to your own team. You can invite team members to join you or join another team. Currently, each account can only belong to a single team.

All the entities below are scoped to a particular team.

Applications / Builds / Fleets

Teams manage three primary entities: applications, builds, and fleets.

Application

An application is the top level namespace representing different environments ( dev, staging, prod). Applications group deployments, processes, and rooms together.

Build

A build represents a game server artifact stored in the Hathora registry. Every time you generate a new server build in your CI/CD, you should push it to the Hathora registry. You can use a build across all applications.

Fleet

A fleet represents the set of compute resources available across all Hathora regions. Your team's fleet serves as a unified compute pool that can be utilized across multiple applications.

Deployments / Processes / Rooms

To deploy a game, you'll need to create the following chain of entities.

Deployment

A deployment maps a build to an application and represents the runtime configurations for your container. Deployments support no-downtime upgrades—pushing a new deployment won't affect existing rooms in progress.

Process

A process represents a running instance of your game server (equivalent to a Docker container). Each process provides real-time logs and system metrics.

Room

A room represents a single match or game session. In most cases rooms are 1:1 with processes. Hathora additionally enables advanced optimization by supporting process reuse across rooms or multiple concurrent rooms per process.