  Mixed-consistency programming models assist programmers in designing
applications that provide high availability while still ensuring
application-specific safety invariants. However, existing models often make
specific system assumptions, such as building on a particular database system
or having baked-in coordination strategies. This makes it difficult to apply
these strategies in diverse settings, ranging from client/server to ad-hoc
peer-to-peer networks.
  This work proposes a new strategy for building programmable coordination
mechanisms based on the algebraic replicated data types (ARDTs) approach. ARDTs
allow for simple and composable implementations of various protocols, while
making minimal assumptions about the network environment. As a case study, two
different locking protocols are presented, both implemented as ARDTs. In
addition, we elaborate on our ongoing efforts to integrate the approach into
the LoRe mixed-consistency programming language.
