<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Automerge on Liangrun Da&#39;s website</title>
    <link>/tags/automerge/</link>
    <description>Recent content in Automerge on Liangrun Da&#39;s website</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <lastBuildDate>Tue, 13 Jun 2023 00:00:01 +0200</lastBuildDate>
    <atom:link href="/tags/automerge/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>What&#39;s behind Automerge? (Part II)</title>
      <link>/posts/automerge-internal-2/</link>
      <pubDate>Tue, 13 Jun 2023 00:00:01 +0200</pubDate>
      <guid>/posts/automerge-internal-2/</guid>
      <description>Storage From operations to changes Before applying operations received from other actors, it&amp;rsquo;s necessary to ensure that they are causally ready. This rule applies to most Operation-based CRDTs 1.
We can use vector clocks to ensure that all operations are causally applied, but it is not Byzantine fault tolerant. Another way is to use Hash DAG 2. By recording the dependencies of each operation, other actors can determine if it is causally ready when they receive it by checking if its dependencies exist in the current OpSet.</description>
    </item>
    <item>
      <title>What&#39;s behind Automerge? (Part I)</title>
      <link>/posts/automerge-internal-1/</link>
      <pubDate>Tue, 13 Jun 2023 00:00:00 +0200</pubDate>
      <guid>/posts/automerge-internal-1/</guid>
      <description>Runtime Operation Set Operation Set (OpSet), as the name suggested, is a set of operations. It is the runtime data structure of Automerge, that enables the creation, retrieval, updating, and deletion of objects. The merging of two documents is conceptually the union of two operation sets.
Everytime we update, delete or create an object, we insert an operation into the OpSet. And the retrieval of an object is actually the retrieval of an operation of the OpSet.</description>
    </item>
  </channel>
</rss>
