Internals

Because this section explains internals for understanding the techniques, it is not essential for using Yorkie.

Design Document

Documentation about Yorkie's internal design and algorithm is available in Yorkie GitHub repository.

Design Document

References

For more details on the techniques used for understanding Yorkie, we recommend reading the following papers.

RGA, RHT:

  • H.-G. Roh, M. Jeon, J.-S. Kim, and J. Lee, “Replicated abstract data types: Building blocks for collaborative applications,” J. Parallel Distrib. Comput., vol. 71, no. 3, pp. 354–368, Mar. 2011. [Online].: Link

RGATreeSplit:

  • Weihai Yu, “Supporting String-Wise Operations and Selective Undo for Peer-to-Peer Group Editing.“: Link
  • Loïck Briot, Pascal Urso, Marc Shapiro, “High Responsiveness for Group Editing CRDTs“.: Link

Attach/Detach, PushPull API:

  • Kaleido: Implementing a Novel Data System for Multi-Device Synchronization: Link