Explorer
KNOW-PAT-249

Ajouter la collaboration temps réel progressivement

Domaine
backend
Type
pattern
Priorité
P2

Ajouter la collaboration temps réel progressivement

Ordre recommandé

  1. Un format de projet local versionné et récupérable.
  2. Sauvegarde serveur avec conflits visibles et historique.
  3. Présence éphémère séparée : curseur, sélection, utilisateur connecté.
  4. Édition partagée seulement sur les structures qui en ont besoin.
  5. CRDT/Yjs si la fusion concurrente hors ligne ou pair-à-pair est une exigence réelle.

Frontière des données

Les structures partagées décrivent le projet, les opérations et les références de médias. Les gros médias binaires passent par un stockage d'objets et un protocole d'upload dédié ; les diffuser dans le document CRDT ou le canal de présence gonfle mémoire et trafic.

Transport

WebSocket est le choix de compatibilité habituel, mais l'interface classique ne fournit pas de backpressure automatique. Borner buffers et fréquence, surveiller bufferedAmount, compacter les mises à jour et reconnecter avec reprise idempotente. WebTransport offre des primitives modernes mais reste une option progressive, jamais une dépendance implicite sans validation de compatibilité et d'infrastructure HTTP/3.

Autorité et sécurité

Le serveur authentifie, autorise par projet, impose limites et conserve un journal utile. Un CRDT résout la convergence des données, pas les permissions, la fraude, l'intégrité des fichiers ni la rétention.

Tests

Deux auteurs hors ligne, reconnexion dans des ordres différents, duplication de messages, retard important, rafale de présence, révocation d'accès, projet supprimé et mise à niveau de schéma pendant une session.

Sources