Search papers, labs, and topics across Lattice.
This paper explores the application of Conflict-free Replicated Data Types (CRDTs) for enabling dynamic software updates in distributed applications, introducing a novel App CRDT that organizes application code by semantic versioning to maintain a total order of updates. The approach allows for seamless operation of applications with partially updated components, even amidst backwards-incompatible changes, thus enhancing resilience in distributed systems. Implemented in both AmbientTalk and LuAT, the findings demonstrate minimal integration effort while showcasing the generalizability of CRDTs across different programming languages.
Dynamic software updates can now be safely managed in distributed applications without sacrificing compatibility, thanks to a new CRDT-based approach.
This paper investigates how Conflict-free Replicated Data Types (CRDTs) can be used for dynamic software updates of distributed applications. We propose to model application updates as a new App CRDT that stores the application code associated with a semantic version, which defines a total order of the code updates. The App CRDT works with an API-compatible message delivery middleware, which allows applications to continue working with partially updated components in the face of backwards-incompatible software updates. We implemented our approach in AmbientTalk, an ambient-oriented programming language designed for distributed systems. We show how this CRDT can be integrated with existing AmbientTalk applications, requiring minimal changes. We also implemented our approach in LuAT, an ambient-oriented programming framework for Lua. This shows that our approach of using CRDTs to replicate code can be generalised to other programming languages.