{"title":"Citrea和swarm:浏览器中部分排序的op日志:在JavaScript中实现协作编辑器和对象同步库","authors":"V. Grishchenko","doi":"10.1145/2596631.2596641","DOIUrl":null,"url":null,"abstract":"Principles of eventual consistency are normally applied in large-scale distributed systems. I report experiences applying EC in Web app development. Citrea is a collaborative rich text editor employing the Causal Trees[4] technology of concurrency/version control (note: CT is not an OT flavor). CT employs symbol ids and trees and, generally, belongs to the same family as WOOT, Logoot or Treedoc [1--3]. CT makes the ids-and-trees approach production-practical by limiting itself to simple and lightweight algorithms and data structures. Swarm is a JavaScript object sync library that works in the browser, in real time. Swarm fully employs client-side storage and works well under intermittent connectivity. Swarm employs \"pure\" op-based model, although I find that state- vs op-based separation is rather bogus in practice. Our top finding is a specifier, a serialized event description format that enables straightforward operation storage, caching and exchange.","PeriodicalId":354287,"journal":{"name":"PaPEC '14","volume":"23 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2014-04-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"7","resultStr":"{\"title\":\"Citrea and swarm: partially ordered op logs in the browser: implementing a collaborative editor and an object sync library in JavaScript\",\"authors\":\"V. Grishchenko\",\"doi\":\"10.1145/2596631.2596641\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Principles of eventual consistency are normally applied in large-scale distributed systems. I report experiences applying EC in Web app development. Citrea is a collaborative rich text editor employing the Causal Trees[4] technology of concurrency/version control (note: CT is not an OT flavor). CT employs symbol ids and trees and, generally, belongs to the same family as WOOT, Logoot or Treedoc [1--3]. CT makes the ids-and-trees approach production-practical by limiting itself to simple and lightweight algorithms and data structures. Swarm is a JavaScript object sync library that works in the browser, in real time. Swarm fully employs client-side storage and works well under intermittent connectivity. Swarm employs \\\"pure\\\" op-based model, although I find that state- vs op-based separation is rather bogus in practice. Our top finding is a specifier, a serialized event description format that enables straightforward operation storage, caching and exchange.\",\"PeriodicalId\":354287,\"journal\":{\"name\":\"PaPEC '14\",\"volume\":\"23 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2014-04-13\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"7\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"PaPEC '14\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/2596631.2596641\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"PaPEC '14","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2596631.2596641","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Citrea and swarm: partially ordered op logs in the browser: implementing a collaborative editor and an object sync library in JavaScript
Principles of eventual consistency are normally applied in large-scale distributed systems. I report experiences applying EC in Web app development. Citrea is a collaborative rich text editor employing the Causal Trees[4] technology of concurrency/version control (note: CT is not an OT flavor). CT employs symbol ids and trees and, generally, belongs to the same family as WOOT, Logoot or Treedoc [1--3]. CT makes the ids-and-trees approach production-practical by limiting itself to simple and lightweight algorithms and data structures. Swarm is a JavaScript object sync library that works in the browser, in real time. Swarm fully employs client-side storage and works well under intermittent connectivity. Swarm employs "pure" op-based model, although I find that state- vs op-based separation is rather bogus in practice. Our top finding is a specifier, a serialized event description format that enables straightforward operation storage, caching and exchange.