Introduction

L'expérience collaborative 'Trillion Characters' est une démonstration de la puissance de Datastar, un framework JavaScript léger de 11kB avec une architecture radicalement différente. Cette application permet à plusieurs utilisateurs de collaborer en temps réel sur un même canvas, sans utiliser de JavaScript côté client, à l'exception de Datastar.

Contexte Technique

Datastar élimine l'état et la logique côté client, déplaçant toute la logique interactive vers le serveur. Les mises à jour de page sont transmises au client sous forme de modèles HTML rendus par le serveur via un flux SSE persistant. Cela réduit le navigateur à un simple affichage de HTML brut, tout en offrant une interactivité complète. L'utilisation de flux SSE permet la compression de données sur toute la session, réduisant ainsi les préoccupations concernant la bande passante.

L'application utilise également l'algorithme de morphing DOM pour des mises à jour performantes et sans interruption. Le serveur est basé sur le modèle CQRS, qui sépare les lectures et les écritures, permettant ainsi une collaboration en temps réel. Les caractères sont stockés dans une base de données LMDB, avec une compression LZ4 et un stockage en chunks de 45x45.

Analyse et Implications

L'utilisation de Datastar et de l'architecture CQRS permet une collaboration en temps réel sans sacrifier les performances. La compression de données et l'utilisation de flux SSE réduisent les coûts de bande passante, ce qui en fait une solution intéressante pour les applications web collaboratives. De plus, l'utilisation d'une base de données LMDB avec une compression LZ4 et un stockage en chunks permet un stockage efficace des données.

Perspective

Il est important de surveiller les limites de cette technologie, notamment en termes de scalabilité et de sécurité. Cependant, les résultats prometteurs de cette expérience démontrent le potentiel de Datastar et de l'architecture CQRS pour les applications web collaboratives. Avec une instance VPS à seulement 5,52€, cette application démontre que la collaboration en temps réel peut être abordable et accessible à tous.