skip to main content
research-article

PushPin: towards production-quality peer-to-peer collaboration

Published: 27 April 2020 Publication History
  • Get Citation Alerts
  • Abstract

    Fully peer-to-peer application software promises many benefits over cloud software, in particular, being able to function indefinitely without requiring servers. Research on distributed consistency mechanisms such as CRDTs has laid the foundation for P2P data synchronisation and collaboration. In this paper we report on our experience in taking these technologies beyond research prototypes, and working towards commercial-grade P2P collaboration software. We identify approaches that work well in our experience, such as the functional reactive programming paradigm, and highlight areas in need of further research, such as the reliability of NAT traversal and usability challenges.

    References

    [1]
    [n.d.]. Electron. https://www.electronjs.org/
    [2]
    [n.d.]. Miro. https://miro.com
    [3]
    Sebastian Burckhardt, Manuel Fähndrich, Daan Leijen, and Benjamin P Wood. 2012. Cloud Types for Eventual Consistency. In 26th European Conference on Object-Oriented Programming (ECOOP 2012). Springer LNCS, volume 7313, 283--307.
    [4]
    Roshan Choxi, Ignatius Gilfedder, Mark McGranaghan, Jeff Peterson, Matt Tognetti, and Peter van Hardenberg. 2019. PushPin source code. https://github.com/automerge/pushpin
    [5]
    Evan Czaplicki and Stephen Chong. 2013. Asynchronous functional reactive programming for GUIs. In 34th Annual SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2013). ACM, 411--422.
    [6]
    Facebook, Inc. [n.d.]. React. https://reactjs.org/
    [7]
    Bryan Ford, Pyda Srisuresh, and Dan Kegel. 2005. Peer-to-Peer Communication Across Network Address Translators. In USENIX Annual Technical Conference (ATC 2005). 179--192. http://brynosaurus.com/pub/net/p2pnat.pdf
    [8]
    Victor B F Gomes, Martin Kleppmann, Dominic P Mulligan, and Alastair R Beresford. 2017. Verifying strong eventual consistency in distributed systems. Proceedings of the ACM on Programming Languages (PACMPL) 1, OOPSLA (Oct. 2017).
    [9]
    Richard Guy, Peter Reiher, David Ratner, Michial Gunter, Wilkie Ma, and Gerald Popek. 1999. Rumor: Mobile Data Access Through Optimistic Peer-to-Peer Replication. In International Conference on Conceptual Modeling Workshops. Springer LNCS, volume 1552, 254--265.
    [10]
    Internet Archive. [n.d.]. HyperCard Stacks. https://archive.org/details/hypercardstacks
    [11]
    Duncan Keall. 2019. How Dat works. https://datprotocol.github.io/how-dat-works/
    [12]
    Martin Kleppmann and Alastair R Beresford. 2017. A Conflict-Free Replicated JSON Datatype. IEEE Transactions on Parallel and Distributed Systems 28, 10 (April 2017), 2733--2746.
    [13]
    Martin Kleppmann and Alastair R. Beresford. 2018. Automerge: Realtime data sync between edge devices. In 1st UK Mobile, Wearable and Ubiquitous Systems Research Symposium (MobiUK 2018). https: //mobiuk.org/abstract/S4-P5-Kleppmann-Automerge.pdf
    [14]
    Martin Kleppmann, Victor B F Gomes, Dominic P Mulligan, and Alastair R Beresford. 2019. Interleaving anomalies in collaborative text editors. In 6th Workshop on Principles and Practice of Consistency for Distributed Data (PaPoC 2019). ACM. 3323972
    [15]
    Martin Kleppmann, Stephan A Kollmann, Diana A Vasile, and Alastair R Beresford. 2018. From Secure Messaging to Secure Collaboration. In 26th International Workshop on Security Protocols (SPW 2018). Springer LNCS, volume 11286, 179--185.
    [16]
    Martin Kleppmann, Peter van Hardenberg, Orion Henry, and Herb Caudill. [n.d.]. Automerge. https://github.com/automerge/automerge
    [17]
    Martin Kleppmann, Adam Wiggins, Peter van Hardenberg, and Mark McGranaghan. 2019. Local-First Software: You own your data, in spite of the cloud. In ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward! 2019). ACM, 154--178.
    [18]
    R. Mahy, P. Matthews, and J. Rosenberg. 2010. RFC5766: Traversal Using Relays around NAT (TURN): Relay Extensions to Session Traversal Utilities for NAT (STUN).
    [19]
    Milanote Pty Ltd. [n.d.]. Milanote. https://www.milanote.com
    [20]
    Ragnar Mogk, Lars Baumgärtner, Guido Salvaneschi, Bernd Freisleben, and Mira Mezini. 2018. Fault-tolerant Distributed Reactive Programming. In 32nd European Conference on Object-Oriented Programming (ECOOP 2018), Vol. 109. Schloss Dagstuhl.
    [21]
    Mozilla Developer Network. [n.d.]. IndexedDB API. https://developer. mozilla.org/en-US/docs/Web/API/IndexedDB_API
    [22]
    Mozilla Developer Network. [n.d.]. Progressive web apps (PWAs). https://developer.mozilla.org/en-US/docs/Web/Progressive_ web_apps
    [23]
    Mozilla Developer Network. [n.d.]. Same-origin policy. https://developer.mozilla.org/en-US/docs/Web/Security/Sameorigin_ policy
    [24]
    Mozilla Labs. [n.d.]. PDF.js. https://mozilla.github.io/pdf.js/
    [25]
    Brice Nédelec, Pascal Molli, and Achour Mostefaoui. 2016. CRATE: Writing Stories Together with our Browsers. In 25th International World Wide Web Conference. ACM, 231--234.
    [26]
    Petru Nicolaescu, Kevin Jahns, Michael Derntl, and Ralf Klamma. 2016. Near Real-Time Peer-to-Peer Shared Editing on Extensible Data Types. In 19th International Conference on Supporting Group Work (GROUP 2016). ACM, 39--49.
    [27]
    Arvid Norberg. 2009. BEP 29: uTorrent transport protocol. https: //www.bittorrent.org/beps/bep_0029.html
    [28]
    Maxwell Ogden, Karissa McKelvey, and Mathias Buus Madsen. 2018. Dat -- Distributed Dataset Synchronization and Versioning. https: //github.com/datprotocol/whitepaper/raw/master/dat-paper.pdf
    [29]
    Jeff Peterson, Peter Hardenberg, Matt Tognetti, Jim Pick, and Orion Henry. [n.d.]. Hypermerge. https://github.com/automerge/hypermerge
    [30]
    RangerMauve. [n.d.]. How Dat discovers peers. https://rangermauve. hashbase.io/posts/how-dat-discovers-peers
    [31]
    J. Rosenberg, R. Mahy, P. Matthews, and D. Wing. 2008. RFC5389: Session Traversal Utilities for NAT (STUN).
    [32]
    Yasushi Saito and Marc Shapiro. 2005. Optimistic Replication. Comput. Surveys 37, 1 (March 2005), 42--81. 1057980
    [33]
    Marc Shapiro, Nuno Preguiça, Carlos Baquero, and Marek Zawirski. 2011. Conflict-Free Replicated Data Types. In 13th International Symposium on Stabilization, Safety, and Security of Distributed Systems (SSS 2011). Springer, 386--400.
    [34]
    Stack Overflow. [n.d.]. When is localStorage cleared? https://stackoverflow.com/questions/8537112/when-is-localstorage-cleared
    [35]
    Daniel H Steinberg and Stuart Cheshire. 2005. Zero Configuration Networking: The Definitive Guide. O'Reilly Media.
    [36]
    Dominic Tarr, Erick Lavoie, Aljoscha Meyer, and Christian Tschudin. 2019. Secure Scuttlebutt: An Identity-Centric Protocol for Subjective and Decentralized Applications. In 6th ACM Conference on Information-Centric Networking (ICN 2019). ACM. 3357396
    [37]
    Albert van der Linde, Pedro Fouto, João Leitão, Nuno Preguiça, Santiago Castiñeira, and Annette Bieniusa. 2017. Legion: Enriching Internet Services with Peer-to-Peer Interactions. In 26th International Conference on World Wide Web (WWW 2017). ACM, 283--292.
    [38]
    John Wilander. 2020. Full Third-Party Cookie Blocking and More. https://webkit.org/blog/10218/full-third-party-cookieblocking-and-more/

    Cited By

    View all
    • (2024)Supporting Collaborative Writing Tasks in Large-Scale Distance EducationIEEE Transactions on Learning Technologies10.1109/TLT.2024.335579117(1051-1068)Online publication date: 2024
    • (2023)OrderlessChainProceedings of the 24th International Middleware Conference10.1145/3590140.3629111(137-150)Online publication date: 27-Nov-2023
    • (2023)App-Based Operation of a Control Room Setup: The LeitstandsApp of the CELSIUZ2023 3rd International Conference on Electrical, Computer, Communications and Mechatronics Engineering (ICECCME)10.1109/ICECCME57830.2023.10253369(1-6)Online publication date: 19-Jul-2023
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    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
    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 the author(s) 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].

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 27 April 2020

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. CRDTs
    2. distributed programming
    3. peer-to-peer protocols
    4. real-time collaboration
    5. usability

    Qualifiers

    • Research-article

    Funding Sources

    Conference

    EuroSys '20
    Sponsor:
    EuroSys '20: Fifteenth EuroSys Conference 2020
    April 27, 2020
    Heraklion, Greece

    Acceptance Rates

    PaPoC '20 Paper Acceptance Rate 14 of 23 submissions, 61%;
    Overall Acceptance Rate 34 of 47 submissions, 72%

    Upcoming Conference

    EuroSys '25
    Twentieth European Conference on Computer Systems
    March 30 - April 3, 2025
    Rotterdam , Netherlands

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)37
    • Downloads (Last 6 weeks)3

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Supporting Collaborative Writing Tasks in Large-Scale Distance EducationIEEE Transactions on Learning Technologies10.1109/TLT.2024.335579117(1051-1068)Online publication date: 2024
    • (2023)OrderlessChainProceedings of the 24th International Middleware Conference10.1145/3590140.3629111(137-150)Online publication date: 27-Nov-2023
    • (2023)App-Based Operation of a Control Room Setup: The LeitstandsApp of the CELSIUZ2023 3rd International Conference on Electrical, Computer, Communications and Mechatronics Engineering (ICECCME)10.1109/ICECCME57830.2023.10253369(1-6)Online publication date: 19-Jul-2023
    • (2022)Programming Support for Local-First Software: Enabling the Design of Privacy-Preserving Distributed Software without Relying on the CloudCompanion Proceedings of the 2022 ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for Humanity10.1145/3563768.3565546(21-24)Online publication date: 29-Nov-2022
    • (2022)LoRe: Local-First Reactive Programming with Verified Safety GuaranteesCompanion Proceedings of the 2022 ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for Humanity10.1145/3563768.3563952(57-59)Online publication date: 29-Nov-2022
    • (2022)Efficient Renaming in Sequence CRDTsIEEE Transactions on Parallel and Distributed Systems10.1109/TPDS.2022.317257033:12(3870-3885)Online publication date: 1-Dec-2022
    • (2021)Thinking in eventsProceedings of the 15th ACM International Conference on Distributed and Event-based Systems10.1145/3465480.3467835(15-24)Online publication date: 28-Jun-2021
    • (2021)CambriaProceedings of the 8th Workshop on Principles and Practice of Consistency for Distributed Data10.1145/3447865.3457963(1-9)Online publication date: 26-Apr-2021

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media