The place of caching in modern information systems is considered. Typical models of network applications architecture construction and consistency guarantees that they provide to the end user are presented. A comparative analysis of analogues is given, which allows one to outline the features of the proposed system. The developed architecture is described. The architecture of a separate cluster node is described, as well as the architecture and implementation of software development kits for different programming languages. The specifics of designing complex client libraries for distributed systems are considered. The importance of consistency models is noted, their interrelationships and hierarchy are described based on the summarized information of existing research. A brief comparison of the two popular consensus algorithms, Raft and Paxos, is given in order to determine the basics of designing a common architecture. Industry leaders in caching systems emphasize performance, deliberately relaxing the consistency of the stored data. Using such systems in an environment that requires maintaining the order of events in the external world is difficult or involves the need for additional tools to maintain data consistency. This paper proposes a caching system that guarantees strict data consistency and provides a single interface for handling it, similar to industry leaders.
Read full abstract