Sign in

The new Storage engine and its benefits

Since v3.14, rooms can be powered by our new v2 Storage engine—a ground-up rearchitecture that removes server-side memory limits, enabling faster initial loads and support for much larger documents. Switching is seamless and requires no code changes. Rooms on v1 or v2 behave identically from your app's perspective—Presence, Broadcasts, Liveblocks Storage, and Yjs Storage all work the same way.

You can now opt in to v2 to try it out and give us feedback. Soon it will become the default for everyone.

What are the benefits?

The main architectural leap of v2 is that the Liveblocks server no longer needs to keep the entire document in memory. In v1, large documents put memory pressure on our edge workers, which are limited in capacity. A 50 MiB document, including its overhead, could easily cause an OOM crash in an edge worker on the v1 engine, in turn causing the room to become inaccessible.

Rooms on the v2 Storage engine now stream their document data directly from our persisted storage layer, keeping only minimal data in memory. Conflict resolution and mutations happen directly in the storage layer too.

This enables arbitrarily large documents—server memory is no longer the bottleneck (browser memory, network speed, or your app’s rendering performance might now be).

Initial load time will be faster, especially for larger documents: the server can start streaming immediately without buffering, and our wire protocol has been compacted to reduce transmission overhead.

Several previously documented platform limits have been raised significantly for rooms on the v2 engine:

Itemv1 limitv2 limit
Broadcast event message1 MB32 MB
LiveObject128 kB2 MB
LiveMap value128 kB2 MB
LiveList value128 kB2 MB

How to enable it

The engine is assigned at room creation time and cannot be changed afterward.

  1. Upgrade to v3.14+: npx liveblocks@latest upgrade
  2. Opt-in to v2 (see options below)

Per-room opt-in

Specify the engine option when entering a room. This only affects new rooms—if the room already exists, the room stays on its original engine version.

With RoomProvider:

<RoomProvider id="my-new-room" engine={2}>  {children}</RoomProvider>

With vanilla client:

const { room, leave } = client.enterRoom("my-new-room", { engine: 2 });

Dashboard opt-in

Alternatively, you can opt-in without code changes directly from your Liveblocks dashboard:

  1. Click Settings
  2. Toggle "Enable v2 Storage engine for new rooms"

This is equivalent to setting engine={2} on all new rooms going forward. Note: this toggle affects all projects in your account.

Migrating existing rooms

Eventually, we will transparently migrate all existing room data from the v1 to the v2 Storage engine, and the explicit opt-in engine option will no longer have an effect, but we will announce this ahead of time. This process will be a seamless and uninterrupted continuation for rooms, and require no action on your part.