LoRe: A Programming Model for Verifiably Safe Local-First Software

Fuente: arXiv
Enregistré dans:
Détails bibliographiques
Auteurs principaux: Haas, Julian, Mogk, Ragnar, Yanakieva, Elena, Bieniusa, Annette, Mezini, Mira
Format: Preprint
Publié: 2023
Sujets:
Accès en ligne:
Tags: Ajouter un tag
Pas de tags, Soyez le premier à ajouter un tag!
_version_ 1866913261325123584
author Haas, Julian
Mogk, Ragnar
Yanakieva, Elena
Bieniusa, Annette
Mezini, Mira
author_facet Haas, Julian
Mogk, Ragnar
Yanakieva, Elena
Bieniusa, Annette
Mezini, Mira
contents Local-first software manages and processes private data locally while still enabling collaboration between multiple parties connected via partially unreliable networks. Such software typically involves interactions with users and the execution environment (the outside world). The unpredictability of such interactions paired with their decentralized nature make reasoning about the correctness of local-first software a challenging endeavor. Yet, existing solutions to develop local-first software do not provide support for automated safety guarantees and instead expect developers to reason about concurrent interactions in an environment with unreliable network conditions. We propose LoRe, a programming model and compiler that automatically verifies developer-supplied safety properties for local-first applications. LoRe combines the declarative data flow of reactive programming with static analysis and verification techniques to precisely determine concurrent interactions that violate safety invariants and to selectively employ strong consistency through coordination where required. We propose a formalized proof principle and demonstrate how to automate the process in a prototype implementation that outputs verified executable code. Our evaluation shows that LoRe simplifies the development of safe local-first software when compared to state-of-the-art approaches and that verification times are acceptable.
format Preprint
id arxiv_https___arxiv_org_abs_2304_07133
institution arXiv
publishDate 2023
record_format arxiv
spellingShingle LoRe: A Programming Model for Verifiably Safe Local-First Software
Haas, Julian
Mogk, Ragnar
Yanakieva, Elena
Bieniusa, Annette
Mezini, Mira
Programming Languages
Local-first software manages and processes private data locally while still enabling collaboration between multiple parties connected via partially unreliable networks. Such software typically involves interactions with users and the execution environment (the outside world). The unpredictability of such interactions paired with their decentralized nature make reasoning about the correctness of local-first software a challenging endeavor. Yet, existing solutions to develop local-first software do not provide support for automated safety guarantees and instead expect developers to reason about concurrent interactions in an environment with unreliable network conditions. We propose LoRe, a programming model and compiler that automatically verifies developer-supplied safety properties for local-first applications. LoRe combines the declarative data flow of reactive programming with static analysis and verification techniques to precisely determine concurrent interactions that violate safety invariants and to selectively employ strong consistency through coordination where required. We propose a formalized proof principle and demonstrate how to automate the process in a prototype implementation that outputs verified executable code. Our evaluation shows that LoRe simplifies the development of safe local-first software when compared to state-of-the-art approaches and that verification times are acceptable.
title LoRe: A Programming Model for Verifiably Safe Local-First Software
topic Programming Languages
url https://arxiv.org/abs/2304.07133