# CRDT (Conflict-free replicated datasets) vs total order broadcasting

source: https://ift.tt/qKi0Uxd tags: #literature #programming #distributed-systems uid: 202212112110

To run an application from the web, you connect to a server. Since the server is centralized anyway, we can have it enforce a global ordering over the events. That is, every replica receives events in the same order. With this, we can sidestep the need to pay the CRDT complexity tax.

Evan Wallace of Figma writes:

Figma isn’t using true CRDTs […]. CRDTs are designed for decentralized systems where there is no single central authority to decide what the final state should be. There is some unavoidable performance and memory overhead with doing this. Since Figma is centralized (our server is the central authority), we can simplify our system by removing this extra overhead and benefit from a faster and leaner implementation.

Path #2 in its pure form represents state machine replication. We ensure that each replica receives changes in the same global” order, and apply change on each replica in that same global order. This ensures that each replica stays in sync, even if change operations are not commutative.

This is total order broadcast, covered in DDIA (https://readwise.io/bookreview/13143902).


Date
February 22, 2023