skip to main content
10.1145/3380787.3393679acmconferencesArticle/Chapter ViewAbstractPublication PageseurosysConference Proceedingsconference-collections
research-article

AutoCouch: a JSON CRDT framework

Published:27 April 2020Publication History

ABSTRACT

Most web-based applications require an undisrupted connection to some kind of server for updating the current application state and propagating changes made locally at the clients. By their very nature, CRDTs provide the right semantics for these applications as they resolve conflicts after concurrent state changes from different users or when a user reconnects after some period of unavailability. Although the JSON format is often used to summarize and represent the complete state of web applications, there is currently - to our knowledge - no generic integrated implementation of a JSON CRDT framework that supports the standard clientserver setup for web apps.

In this paper, we present the AutoCouch framework which combines the benefits of the Automerge CRDT library with the widely used CouchDB framework. It provides an out-ofthe-box use of a conflict-free JSON document that is replicated on server side and in browsers on client side, while requiring few adaptations to provide smooth online/offline transitions for web apps.

References

  1. 2014. Riak 2.0. https://riak.comGoogle ScholarGoogle Scholar
  2. 2020. delta-crdts. https://github.com/peer-base/js-delta-crdtsGoogle ScholarGoogle Scholar
  3. 2020. Ditto-CRDT-lib. https://www.npmjs.com/package/ditto-crdt-libGoogle ScholarGoogle Scholar
  4. AntidoteDB. 2020. Overview. https://antidotedb.gitbook.io/documentationGoogle ScholarGoogle Scholar
  5. Cihan Biyikoglu. 2020. Under the Hood: Redis CRDTs (Conflict-free Replicated Data Types). Technical Report. Redis Labs.Google ScholarGoogle Scholar
  6. Apache Software Foundation. 2020. Apache CouchDB. https://docs.couchdb.org/en/stable/Google ScholarGoogle Scholar
  7. Martin Kleppmann and Alastair R. Beresford. 2016. A Conflict-Free Replicated JSON Datatype. CoRR abs/1608.03960 (2016). arXiv:1608.03960 http://arxiv.org/abs/1608.03960Google ScholarGoogle Scholar
  8. Martin Kleppmann, Herb Caudill, Orion Henry, Rajat Verma, Sam McCord, Peter van Hardenberg, Mark McGranaghan, Miguel Oller, and Issiaka Aziz Fane. 2019. Automerge. https://github.com/automerge/automerge/blob/master/README.mdGoogle ScholarGoogle Scholar
  9. Martin Kleppmann and Eric Dahlseng. 2019. Automerge internal data structures. https://github.com/automerge/automerge/blob/master/INTERNALS.mdGoogle ScholarGoogle Scholar
  10. Martin Kleppmann, Adam Wiggins, Peter van Hardenberg, and Mark McGranaghan. 2019. Local-first software: you own your data, in spite of the cloud. In Proceedings of the 2019 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, Onward! 2019, Athens, Greece, October 23--24, 2019, Hidehiko Masuhara and Tomas Petricek (Eds.). ACM, 154--178. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Petru Nicolaescu, Kevin Jahns, Michael Derntl, and Ralf Klamma. 2016. Near Real-Time Peer-to-Peer Shared Editing on Extensible Data Types. In Proceedings of the 19th International Conference on Supporting Group Work. ACM, 39--49. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Nuno M. Preguiça. 2018. Conflict-free Replicated Data Types: An Overview. CoRR abs/1806.10254 (2018). arXiv:1806.10254 http://arxiv.org/abs/1806.10254Google ScholarGoogle Scholar
  13. Victor Grishchenko & Co. 2020. Replicated Object Notation. https://replicated.cc/Google ScholarGoogle Scholar

Index Terms

  1. AutoCouch: a JSON CRDT framework

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        PaPoC '20: Proceedings of the 7th Workshop on Principles and Practice of Consistency for Distributed Data
        April 2020
        98 pages
        ISBN:9781450375245
        DOI:10.1145/3380787

        Copyright © 2020 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 27 April 2020

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        PaPoC '20 Paper Acceptance Rate14of23submissions,61%Overall Acceptance Rate34of47submissions,72%

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader