Skip to content

Figma: real-time multiplayer editing

Several people editing one design at once, kept in sync by a single server per document.

The idea

Collaborative editing is usually taught through operational transforms or CRDTs. Figma took a simpler route that its product allowed: one server owns each open document, and changes are resolved per property, with the last writer winning. Two people changing different properties never conflict; two changing the same one get a predictable result. Children are ordered by fractional positions, so inserting between two items never renumbers the rest.

The second post is about durability. Saving the whole file every so often means a crash loses everything since the last save. Writing each small change to a durable journal first, and making sure only one server owns a file's history at a time, closes that gap.

Read the originals

Written by the engineers who built it.

  • Making multiplayer more reliable

    Darren Tsung · Post, Oct 2022

    Closing the gap between periodic saves: a durable journal of small changes, and one owner per document's history.

  • How Figma's multiplayer technology works

    Evan Wallace · Post, Oct 2019

    Why a central server per document let Figma avoid most of the machinery of operational transforms, and how ordering works when anyone can insert anywhere.

Practise it

Make the decisions yourself, then compare.