Local-First Software: Promises and Pitfalls

Loading...
Thumbnail Image

URL

Journal Title

Journal ISSN

Volume Title

Perustieteiden korkeakoulu | Bachelor's thesis

Department

Major/Subject

Mcode

SCI3027

Language

en

Pages

27

Series

Abstract

Software applications with collaboration features are typically built to store and process data on remote servers, making the client application completely dependent on those servers. This architectural pattern is simple to implement but has drawbacks: it is not possible to use the application without an internet connection, it is not always clear who owns the user's data, communication with the server may cause delays in actions taken by the user, and the application stops working if the service shuts down, potentially resulting in data loss. Local-first software refers to a software design pattern that prioritises storing and processing data locally on the user's device instead of remote servers. In this approach, servers are typically only utilised as a synchronisation tool to enable collaboration between users. This thesis reviews the benefits and drawbacks of each approach based on existing research and describes the common technologies typically used to build local-first software. The study demonstrates that the local-first pattern can be beneficial in applications involving asynchronous collaboration, but is unable to replace certain types of cloud-based software, such as those handling financial transactions or large datasets. Currently, the development of local-first applications remains relatively limited; however, there is clear interest in the topic within both academic and professional communities. To advance local-first development, it would be beneficial to research how existing synchronous data structures could be adapted to support asynchronous collaboration and how the memory overhead and other limitations of local-first data structures can be mitigated.

Yhteistyöominaisuuksia tarjoavien sovellusten toiminta perustuu tyypillisesti tietojen tallentamiseen ja käsittelyyn etäpalvelimilla, jolloin asiakassovellus on täysin riippuvainen näistä palvelimista. Tämä pilviohjelmistojen (engl. cloud software) arkkitehtuurimalli on suosittu ja helposti toteutettavissa, mutta siihen liittyy myös haittapuolia: sovelluksen käyttäminen ei ole mahdollista ilman internet-yhteyttä; käyttäjän luomien tietojen omistajuus voi olla epäselvää; verkkoviiveet voivat aiheuttaa viiveitä käyttöliittymässä; ja sovellus lakkaa toimimasta palveluntarjoajan lopettaessa sen ylläpidon, mikä saattaa johtaa tietojen menetykseen. Paikallislähtöiset sovellukset (engl. local-first software) pyrkivät ratkaisemaan näitä ongelmia tallentamalla ja käsittelemällä käyttäjän tietoja vain käyttäjän päätelaitteella. Tämän lisäksi voidaan hyödyntää etäpalvelimia, mutta tyypillisesti vain käyttäjien väliseen tietojen synkronointiin yhteistyön mahdollistamiseksi. Tässä kandidaatintyössä tarkastellaan kunkin arkkitehtuurimallin hyötyjä ja haittoja aiemman tutkimuksen pohjalta sekä kuvataan paikallislähtöisten sovellusten kehityksessä tyypillisesti käytettyjä teknologioita. Työ osoittaa, että paikallislähtöisyys soveltuu etenkin asynkronisen yhteistyön sovelluksiin, mutta ei pysty täysin korvaamaan tietynlaisia pilviohjelmistoja, kuten rahaliikennettä tai suuria tietoaineistoja käsitteleviä sovelluksia. Paikallislähtöisiä sovelluksia kehitetään toistaiseksi melko vähän, mutta aiheeseen kohdistuu selkeää kiinnostusta sekä akateemisessa että ammatillisessa yhteisössä. On todennäköistä, että tämäntyyppinen ohjelmistokehitys yleistyy lähitulevaisuudessa. Siirtymän edistämiseksi olisi hyödyllistä tutkia lisää sitä, miten olemassaolevia tietorakenteita voidaan mukauttaa asynkroniseen yhteistyöhön sopivaksi ja miten niiden muistikuormaa ja muita rajoitteita voidaan pienentää.

Description

Supervisor

Savioja, Lauri

Thesis advisor

Vepsäläinen, Juho

Other note

Citation