Global-scale applications, such as virtual wallets, advertising platforms, social networks, online games, or collaboration networks, require consistency across distributed data items. As networked users, objects, devices, and sensors proliferate, the consistency issue is increasingly acute for the software industry. Both sides of the classical alternative, requiring to choose between consistency and availability, are unsatisfactory.
The goal of SyncFree is to close the gap between consistency and availability, enabling extreme-scale distributed applications without global synchronisation. The SyncFree project aims to develop both theoretical and practical understanding of large-scale synchronisation-free programming. It has advanced both the theory and practice of large-scale application architectures, leveraging the experience and requirements of the SyncFree industrial partners, and the research expertise of the academic partners.
The starting point is the concept of Conflict-free Replicated Data Types (CRDTs). CRDTs allow unsynchronised concurrent updates, yet provably ensure convergence. The project develops CRDT specifications and implementations, programming platforms, languages and patterns, and tools for extreme-scale available systems. Beyond CRDTs, the project explores global invariants in an extreme-scale environment to develop programming tools and patterns for extreme scale replication, and to experiment in vivo with extreme scale real applications.
The SyncFree research has proposed a number of innovative mechanisms to simplify the development of synchronisation-free software while ensuring correctness, scalablity and performance. Remarkable contributions of SyncFree include BigSets, an efficient approach for implementing large (> 1Mb) CRDTs; Antidote, a cloud-scale CRDT database that combines high availability with strong guarantees; Bounded Counters, an extended CRDT encapsulating an available shared counter guaranteeing strong invariants; the Just-Right Consistency approach, that applies application analysis to tailoring the consistency protocol to application requirements; Lasp, a programming language for available systems; WombatOAM, a highly-available operation & maintenance platform; Legion, a P2P platform for sharing CRDTs, and so on.