{"title":"AMC: Towards Trustworthy and Explorable CRDT Applications with the Automerge Model Checker","authors":"A. Jeffery, R. Mortier","doi":"10.1145/3578358.3591326","DOIUrl":null,"url":null,"abstract":"Conflict-free Replicated Data Types (CRDTs) enable local-first operations and asynchronous collaboration without the need for always-on centralised services. CRDTs can have a high overhead, so implementations need to be optimised, but this optimisation can lead to bugs despite the use of test suites and fuzzing. Furthermore, using CRDTs in applications is complex, observing unexpected conflict resolution, issues synchronising documents and difficulties implementing appropriate data models. Automerge is a library, exposing a JSON CRDT, that sees users having difficulties in modelling their problems, understanding their edge cases and implementing applications correctly. We introduce the Automerge Model Checker (AMC), empowering application developers to check properties about their implementations and explore them dynamically. AMC can check a range of applications as well as being able to check properties about the core of Automerge itself, helping to make more trustworthy Automerge applications. AMC is available open-source at github.com/jeffa5/automerge-model-checker.","PeriodicalId":198398,"journal":{"name":"Proceedings of the 10th Workshop on Principles and Practice of Consistency for Distributed Data","volume":null,"pages":null},"PeriodicalIF":0.0000,"publicationDate":"2023-05-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 10th Workshop on Principles and Practice of Consistency for Distributed Data","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3578358.3591326","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
Conflict-free Replicated Data Types (CRDTs) enable local-first operations and asynchronous collaboration without the need for always-on centralised services. CRDTs can have a high overhead, so implementations need to be optimised, but this optimisation can lead to bugs despite the use of test suites and fuzzing. Furthermore, using CRDTs in applications is complex, observing unexpected conflict resolution, issues synchronising documents and difficulties implementing appropriate data models. Automerge is a library, exposing a JSON CRDT, that sees users having difficulties in modelling their problems, understanding their edge cases and implementing applications correctly. We introduce the Automerge Model Checker (AMC), empowering application developers to check properties about their implementations and explore them dynamically. AMC can check a range of applications as well as being able to check properties about the core of Automerge itself, helping to make more trustworthy Automerge applications. AMC is available open-source at github.com/jeffa5/automerge-model-checker.
无冲突复制数据类型(crdt)支持本地优先操作和异步协作,而不需要始终在线的集中式服务。crdt可能有很高的开销,因此需要对实现进行优化,但是尽管使用了测试套件和模糊测试,这种优化也可能导致bug。此外,在应用程序中使用crdt是复杂的,会遇到意想不到的冲突解决、同步文档的问题以及实现适当数据模型的困难。Automerge是一个库,它暴露了一个JSON CRDT,它可以看到用户在建模问题、理解边缘情况和正确实现应用程序方面遇到的困难。我们介绍了Automerge Model Checker (AMC),使应用程序开发人员能够检查有关其实现的属性并动态地探索它们。AMC可以检查一系列应用程序,也可以检查有关Automerge本身核心的属性,从而帮助创建更值得信赖的Automerge应用程序。AMC的开源地址是github.com/jeffa5/automerge-model-checker。