<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Designing a commutative replicated data type · HackerPapers discussions</title><link>https://hackerpaper.kaipfister.de/p/0710.1784/</link><description>Collected HN comments and submissions linking this paper.</description><language>en</language><lastBuildDate>Mon, 02 Nov 2026 11:16:22 GMT</lastBuildDate><atom:link href="https://hackerpaper.kaipfister.de/p/0710.1784/feed.xml" rel="self" type="application/rss+xml" /><item><title>Designing a commutative replicated data type — mentioned by chalst</title><link>https://news.ycombinator.com/item?id=19299682</link><guid isPermaLink="false">urn:hackerpapers:mention:0710.1784:19299682</guid><pubDate>Mon, 04 Mar 2019 08:31:22 GMT</pubDate><description>&lt;p&gt;This article has led me to Shapiro &amp;amp; Preguiça (2007) https://arxiv.org/pdf/0710.1784.pdf The whole idea that commutativity gives you a better-behaved transition to consistency reminds me of how the theory of patches gives DARCS/Pijul better handling of branches than Git. Cf. Mimram &amp;amp; Giusto (2013) https://arxiv.org/pdf/1311.3903.pdf&lt;/p&gt;&lt;p&gt;&lt;a href="https://hackerpaper.kaipfister.de/p/0710.1784/"&gt;Paper and discussion history&lt;/a&gt;. A mention is not an endorsement.&lt;/p&gt;</description><category>cs.DC</category></item><item><title>Designing a commutative replicated data type — mentioned by pbailis</title><link>https://news.ycombinator.com/item?id=3658709</link><guid isPermaLink="false">urn:hackerpapers:mention:0710.1784:3658709</guid><pubDate>Fri, 02 Mar 2012 22:52:54 GMT</pubDate><description>&lt;p&gt;Right; you need some notion of a total order or commutativity in your update functions. f(A,B) = f(B,A). &amp;quot;Last writer wins&amp;quot; is one example of commutativity, but that isn&amp;#x27;t often what you want. What you want is something like a &amp;quot;Commutative Replicated Data Type&amp;quot; [1], where you define a commutative function specific to your application. Libraries like StateBox allow you to build CRDTs [2]. In fact, your example of document editing was one of the areas where these ideas first came up. There&amp;#x27;s also a theorem saying that if your program is &amp;quot;logically monotonic&amp;quot;--that is, if your data only &amp;quot;grows&amp;quot;…&lt;/p&gt;&lt;p&gt;&lt;a href="https://hackerpaper.kaipfister.de/p/0710.1784/"&gt;Paper and discussion history&lt;/a&gt;. A mention is not an endorsement.&lt;/p&gt;</description><category>cs.DC</category></item></channel></rss>
