MIGRATION GUIDE · 2026-07-01
By Alexander Strandberg · Founder, Aevs
Hathora Cloud shut down on May 5, 2026, after the company was acquired by Fireworks AI. If your game ran dedicated servers on Hathora, you need a new host — and a way to prove the replacement behaves the same before your players find out it doesn't.
This guide maps Hathora's primitives to Aevs validation concepts, gives you a sandbox config template and a validation plan, and walks the migration step by step. Aevs is Netcode CI — it does not host your servers; it validates whichever host you move to.
Aevs is not a server host
You still pick a replacement host (Edgegap, GameLift, self-hosted Agones, and so on). Aevs is the validation layer that spins up a sandbox per pull request, runs a declarative plan against your backend, and blocks merge if it fails. It turns “did the migration break anything?” into a reproducible pass/fail check.
Hathora Cloud — the room-and-process dedicated-server platform popular with indie and mid-size multiplayer studios — shut down on May 5, 2026, following Hathora's acquisition by Fireworks AI. Studios were given a migration window to move their server workloads elsewhere.
For many teams this was the second migration in a single year. Unity Multiplay shut down in March 2026, and a number of studios that moved from Multiplay to Hathora then had to move again weeks later. If that's you, the Multiplay guide is a useful companion — the validation approach below is identical. See the Unity Multiplay migration guide →
Aevs doesn't reproduce Hathora's hosting primitives — it validates that whatever replaces them still works. The table below maps each Hathora primitive to the Aevs concept that verifies it on your new host.
| Hathora primitive | What it did | Aevs validation concept |
|---|---|---|
| App / Deployment | Versioned server build pushed to Hathora Cloud | Sandbox runtime image, rebuilt per pull request |
| Room | Ephemeral game session bound to a process | Validation step: assert room / session allocation succeeds |
| Process | Running server instance handling a room | The sandbox instance under test |
| Region | Geographic deployment target for a process | Region list in the sandbox config, exercised by the plan |
| Lobby | Room metadata + player join coordination | Validation step: assert lobby create + join callback fires |
| Ping / region routing | Latency-based region selection | Validation step: assert connect latency budget |
| hathora deploy (CLI) | Push a build to Hathora Cloud | aevs sandbox up — provision + validate in CI |
Drop an aevs.sandbox.yaml at your repo root. The comments show where each field comes from in your old Hathora deployment. This is illustrative — adjust image, ports, and regions to your stack.
Write the plan first, while Hathora — or your captured Hathora behavior — is still the reference. It becomes the pass/fail contract for the migration: if the replacement passes the same plan, it is behaviorally equivalent for the scenarios you care about.
Rough guide for a mid-size studio. The validation work is fast and front-loaded; the host cutover dominates and varies by provider.
| Phase | Typical effort |
|---|---|
| Inventory Hathora dependency surface | Half a day |
| Write the validation plan | Half a day |
| Stand up sandbox + wire replacement host | Half to one day |
| Iterate until the plan passes | Provider-dependent |
| Production cutover + smoke test | Half a day |
Inventory your Hathora dependency surface
Document every Hathora primitive your game touches: app deployments, room create/destroy, process lifecycle, region selection, and Lobby usage. These are what your replacement and your validation plan must cover.
Pick a replacement host
Choose a dedicated-server host that fits your topology — Edgegap, AWS GameLift, self-hosted Agones or Nakama, AccelByte. Aevs is host-agnostic and validates whichever you choose.
Write your validation plan
Translate the Hathora behaviors your game relies on into a declarative Aevs plan: room allocation, join callback timing, region routing, reconnect. Do this before touching production.
Run the plan against a sandbox on the new host
Provision an Aevs sandbox wired to the replacement backend and run the plan. A passing plan means the migration is behaviorally equivalent for the tested scenarios.
Cut over and re-run as a smoke test
Move production traffic to the new host, then run the same plan against production. Monitor allocation latency, join success, and reconnect rates for 24 hours.
No. Aevs does not host game servers. It is Netcode CI — it provisions an isolated sandbox per pull request, runs a declarative validation plan, and blocks merge when the plan fails. During a Hathora migration you still pick a new host; Aevs proves that host works before players see it.
No — the validation plan you write is host-independent. Point the same plan at your next host and it re-runs unchanged. If you moved Multiplay → Hathora and now need to move again, the plan you write once protects every future migration. Multiplay migration guide →
That depends on how deeply you used Hathora-specific APIs. Standard room create/join and process lifecycle calls have equivalents on most hosts. Hathora Lobby usage and region-routing logic will need provider-specific replacements — which is exactly what the validation plan is there to catch.