forked from lavina/lavina
1
0
Fork 0
lavina/docs/scalability.md

1.0 KiB
Raw Blame History

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