forked from lavina/lavina
1
0
Fork 0
This commit is contained in:
Nikita Vilunov 2024-01-31 14:59:34 +01:00
parent b9853ca74d
commit 0e59ab1351
2 changed files with 36 additions and 0 deletions

View File

@ -18,6 +18,19 @@ use crate::prelude::Str;
use crate::table::{AnonTable};
use crate::terminator::Terminator;
/*
сценарии:
- бутстрап нового кластера
- подключение новой ноды к кластеру
- вывод существующей ноды из кластера
имплементация:
- etcd для выбора лидера
- определение модели данных
- определение протокола общения между нодами
- модель верификации поведения нод
*/
#[derive(Deserialize, Debug, Clone)]
pub struct ClusteringConfig {
/// The name of the cluster used for prefixing the data in etcd and to prevent accidental communication between different clusters.

View File

@ -65,3 +65,26 @@ C4Context
BiRel(BobPC, BobConn1, "IRC")
UpdateLayoutConfig($c4ShapeInRow="3", $c4BoundaryInRow="1")
```
## Cluster
```mermaid
C4Context
System_Ext(Alice, "Alice IRC")
System_Ext(Bob, "Bob XMPP")
Boundary(Lavina, "Lavina", "Cluster of nodes") {
System(Node1, "Node 1", "Single server process")
System(Node2, "Node 2", "Single server process")
System(Node3, "Node 3", "Single server process")
Rel(Node1, etcd, "")
Rel(Node2, etcd, "")
Rel(Node3, etcd, "")
BiRel(Node1, Node2, "")
BiRel(Node2, Node3, "")
BiRel(Node1, Node3, "")
System(etcd, "etcd", "Key-value store")
UpdateLayoutConfig($c4ShapeInRow="2", $c4BoundaryInRow="1")
}
Rel(Alice, Node1, "")
Rel(Bob, Node2, "")
```