From e73889d48af76479b32a5869b70acff4a312c3e7 Mon Sep 17 00:00:00 2001 From: Nikita Vilunov Date: Tue, 7 May 2024 00:32:38 +0200 Subject: [PATCH] doc --- docs/scalability.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 docs/scalability.md diff --git a/docs/scalability.md b/docs/scalability.md new file mode 100644 index 0000000..b33f26e --- /dev/null +++ b/docs/scalability.md @@ -0,0 +1,24 @@ +## Step 1 – players and dialogs centralized, rooms distributed +All players are located on the same node. The client traffic is terminated on the same node + +Rooms and their history could be located on other nodes. + +The membership data: +- If the room and the player are located on the same node, it is on the same node and updated atomically. +- If the room and the player are located on different nodes, the membership data is split into two parts: + - The player-specific membership contains all data necessary to validate commands on the player's node side. + It is located on the player's node. + - The room-specific membership contains all data needed to respond to queries such as "list users". + It is located on the room's node. + +Dialogs and their history are located on the same node, as all players. + +The allocation is specified statically in the configuration file. + +## Step 2 – players and dialogs distributed + +## Step 3 – dynamic allocation and consensus + +## Step 4 – all data replicated + +## Step 5 – chat history fragmented