FloodgateSurface/

Floodgate is a fault-isolated Fluid server on the BEAM.

Use Floodgate as the self-hosted collaboration backend for a Fluid Framework app. Each document runs in its own supervised BEAM process, while one server speaks the official Fluid protocol and Phoenix Channels.

One document restarts. Every other session stays untouched.

what a crash looks like

illustrative recovery trace
  • doc:a3f9 ops sequenced, clients attached
  • sup doc:a3f9 exited: badarg
  • sup doc:a3f9 restarted, state reloaded from storage
  • doc:a3f9 client resumed at the same sequence number
  • ok every other document session: untouched

Illustrative supervisor output, not a benchmark — one_for_one is the restart strategy Floodgate configures, and reloading from storage is what a restarted session does.

one server, two protocols

why the BEAM

Gleam compiles to the same virtual machine that has run telecom switches for decades. Every document gets its own supervised process: one session crashing and restarting is normal operation, not an incident, and the sequencing logic that decides what happened next is checked by the compiler before it ships.

capabilities


Run it

From the Floodgate repository root, with Docker Compose installed:

docker compose up -d --wait

starts on http://localhost:3000. The included Compose file uses known development credentials and permissive browser origins; replace both before deploying. Full steps in getting started.

Floodgate is checked against Levee's unmodified integration suites for levee-driver, levee-client, and levee-example. The suites are repointed only by environment variable, so a failure reveals a real behavioral difference between the servers. Review the conformance test setup.

Performance benchmarks are not published yet.

Get Floodgate running