# Consistency types for replicated data in a higher-order distributed   programming language

**Authors:** Xin Zhao, Philipp Haller

arXiv: 1907.00822 · 2020-11-02

## TL;DR

This paper introduces a static type system for a distributed programming language that enforces noninterference between weakly and strongly consistent replicated data, ensuring correctness while optimizing synchronization.

## Contribution

It presents lattice-based consistency types for a higher-order language, enabling static enforcement of data consistency levels and preventing incorrect data flow in distributed systems.

## Key findings

- Type system guarantees no interference between data with different consistency levels
- Language can be applied to various distributed applications
- Optimization reduces synchronization overhead

## Abstract

Distributed systems address the increasing demand for fast access to resources and fault tolerance for data. However, due to scalability requirements, software developers need to trade consistency for performance. For certain data, consistency guarantees may be weakened if application correctness is unaffected. In contrast, data flow from data with weak consistency to data with strong consistency requirements is problematic, since application correctness may be broken. In this paper, we propose lattice-based consistency types for replicated data (CTRD), a higher-order static consistency-typed language with replicated data types. The type system of CTRD supports shared data among multiple clients, and statically enforces noninterference between data types with weaker consistency and data types with stronger consistency. The language can be applied to many distributed applications and guarantees that updates of weakly-consistent data can never affect strongly-consistent data. We also extend the basic CTRD with an optimization that reduces synchronization for generating reference graphs.

---
Source: https://tomesphere.com/paper/1907.00822