
Local-First Software: You Own Your Data, in spite of the Cloud Martin Kleppmann Adam Wiggins Department of Computer Science and Technology Ink & Switch University of Cambridge Berlin, Germany Cambridge, United Kingdom [email protected] [email protected] Peter van Hardenberg Mark McGranaghan Ink & Switch Ink & Switch San Francisco, CA, USA Seattle, WA, USA [email protected] [email protected] Abstract Keywords collaboration software, mobile computing, data Cloud apps like Google Docs and Trello are popular because ownership, CRDTs, peer-to-peer communication they enable real-time collaboration with colleagues, and they make it easy for us to access our work from all of our devices. However, by centralizing data storage on servers, cloud apps ACM Reference Format: also take away ownership and agency from users. If a service Martin Kleppmann, Adam Wiggins, Peter van Hardenberg, and Mark shuts down, the software stops functioning, and data created McGranaghan. 2019. Local-First Software: You Own Your Data, in with that software is lost. spite of the Cloud. In Proceedings of the 2019 ACM SIGPLAN In- ternational Symposium on New Ideas, New Paradigms, and Reflec- In this article we propose local-first software, a set of prin- tions on Programming and Software (Onward! ’19), October 23–24, ciples for software that enables both collaboration and own- 2019, Athens, Greece. ACM, New York, NY, USA, 25 pages. https: ership for users. Local-first ideals include the ability to work //doi.org/10.1145/3359591.3359737 offline and collaborate across multiple devices, while also improving the security, privacy, long-term preservation, and user control of data. We survey existing approaches to data storage and sharing, ranging from email attachments to web apps to Firebase- backed mobile apps, and we examine the trade-offs of each. 1 Motivation: Collaboration and We look at Conflict-free Replicated Data Types (CRDTs): Ownership data structures that are multi-user from the ground up while It’s amazing how easily we can collaborate online nowadays. also being fundamentally local and private. CRDTs have We use Google Docs to collaborate on documents, spread- the potential to be a foundational technology for realizing sheets and presentations; in Figma we work together on user local-first software. interface designs; we communicate with colleagues using We share some of our findings from developing local-first Slack; we track tasks in Trello; and so on. We depend on software prototypes at the Ink & Switch research lab over these and many other online services, e.g. for taking notes, the course of several years. These experiments test the via- planning projects or events, remembering contacts, and a bility of CRDTs in practice, and explore the user interface whole raft of business uses. challenges for this new data model. Lastly, we suggest some We will call these services “cloud apps,” but you could next steps for moving towards local-first software: for re- just as well call them “Software as a Service” (SaaS) or “web- searchers, for app developers, and a startup opportunity for based apps.” What they have in common is that we typically entrepreneurs. access them through a web browser or through mobile apps, and that they store their data on a server. Today’s cloud apps offer big benefits compared to earlier CCS Concepts • Human-centered computing → Col- generations of software: seamless collaboration, and being laborative content creation; Ubiquitous and mobile com- able to access data from any device. As we run more and puting systems and tools; • Computer systems organiza- more of our lives and work through these cloud apps, they tion → Peer-to-peer architectures; • Software and its engi- become more and more critical to us. The more time we neering → Peer-to-peer architectures; Organizing principles invest in using one of these apps, the more valuable the data for web applications. in it becomes to us. Onward! ’19, October 23–24, 2019, Athens, Greece Martin Kleppmann, Adam Wiggins, Peter van Hardenberg, and Mark McGranaghan However, in our research we have spoken to a lot of cre- you can do anything you like, including long-term archiv- ative professionals,1 and in that process we have also learned ing, making backups, manipulating the files using other pro- about the downsides of cloud apps. grams, or deleting the files if you no longer want them. You When you have put a lot of creative energy and effort don’t need anybody’s permission to access your files, since into making something, you tend to have a deep emotional they are yours. You don’t have to depend on servers operated attachment to it. If you do creative work, this probably seems by another company. familiar. (When we say “creative work,” we mean not just To sum up: the cloud gives us collaboration, but old-fash- visual art, or music, or poetry — many other activities, such ioned apps give us ownership. Can’t we have the best of both as explaining a technical topic, implementing an intricate worlds? We would like both the convenient cross-device algorithm, designing a user interface, or figuring out how to access and real-time collaboration provided by cloud apps, lead a team towards some goal are also creative efforts.) and also the personal ownership of your own data embodied In the process of performing that creative work, you typi- by “old-fashioned” software. cally produce files and data: documents, presentations, spread- sheets, code, notes, drawings, and so on. And you will want 2 Seven Ideals for Local-first Software to keep that data: for reference and inspiration in the future, to include it in a portfolio, or simply to archive because you We believe that data ownership and real-time collaboration feel proud of it. It is important to feel ownership of that data, are not at odds with each other. It is possible to create soft- ware that has all the advantages of cloud apps, while also because the creative expression is something so personal. allowing you to retain full ownership of the data, documents Unfortunately, cloud apps are problematic in this regard. Although they let you access your data anywhere, all data and files you create. local-first software access must go via the server, and you can only do the things We call this type of software , since it that the server will let you do. In a sense, you don’t have full prioritizes the use of local storage (the disk built into your ownership of that data — the cloud provider does.2 In the computer) and local networks (such as your home WiFi) over servers in remote datacenters. words of a bumper sticker [132]: “There is no cloud, it’s just In cloud apps, the data on the server is treated as the someone else’s computer.” When data is stored on “someone else’s computer”, that primary, authoritative copy of the data; if a client has a copy third party assumes a degree of control over that data. Cloud of the data, it is merely a cache that is subordinate to the apps are provided as a service; if the service is unavailable, server. Any data modification must be sent to the server, you cannot use the software, and you can no longer access otherwise it “didn’t happen.” In local-first applications we swap these roles: we treat the copy of the data on your local your data created with that software. If the service shuts device — your laptop, tablet, or phone — as the primary copy. down, even though you might be able to export your data, without the servers there is normally no way for you to Servers still exist, but they hold secondary copies of your continue running your own copy of that software. Thus, you data in order to assist with access from multiple devices. are at the mercy of the company providing the service. As we shall see, this change in perspective has profound Before web apps came along, we had what we might call implications. Here are seven ideals to strive for in local-first software. “old-fashioned” apps: programs running on your local com- puter, reading and writing files on the local disk. We still use a lot of applications of this type today: text editors and IDEs, 2.1 No Spinners: Your Work at Your Fingertips Git and other version control systems, and many specialized Much of today’s software feels slower than previous gen- software packages such as graphics applications or CAD erations of software [91]. Even though CPUs have become software fall in this category.3 ever faster, there is often a perceptible delay between some In old-fashioned apps, the data lives in files on your local user input (e.g. clicking a button, or hitting a key) and the disk, so you have full agency and ownership of that data: corresponding result appearing on the display. In previous work [95] we measured the performance of modern software 1Our research on software that supports the creative process is discussed and analyzed why these delays occur. further in our articles “Capstone, a tablet for thinking” [81] and “The iPad With cloud apps, since the primary copy of the data is as a fast, precise tool for creativity” [135]. 2We use the term “ownership” not in the sense of intellectual property law on a server, all data modifications, and many data lookups, and copyright, but rather as the creator’s perceived relationship to their require a round-trip to a server. Depending on where you data. We discuss this notion further in Section 2.7. live, the server may well be located on another continent, so 3The software we are talking about in this article are apps for creating the speed of light places a limit on how fast the software can documents or files (such as text, graphics, spreadsheets, CAD drawings, or be (see Figure1).
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages25 Page
-
File Size-