Exemple d'implémentation de CRDT pour Solid dans le domaine client-client

Hello, comme je vous le disais il est tout à fait possible de faire du CRDT avec Solid et un premier exemple est visible ici : https://www.youtube.com/watch?v=awaaSorMYhk.

Il s’agit d’un travail de Noël de Martin, le dev de Media Kraken.

Les CRDT sont implémentés dans le domaine client-client dans des documents RDF (voir à 04:05).

Voir Making a Web Application Framework | Noel De Martin et GitHub - NoelDeMartin/aerogel: The Lightest Solid.

@niko.plp

2 « J'aime »

Merci pour le partage, c’est super intéressant ce que Noël fait :open_mouth:
Cela me fait poser les questions suivantes :

En tant qu’utilisateur, comment gérer mes X applications manipulant des données dans mes Y pods|cods|browsers et partagées avec mes W groupes de confidentialités différents (moi|famille|work1|work2|asso1).

Faut-il au moins une instance centralisée pour gérer cette complexité (cartographier, paramétrer, sauvegarder) ? Doit-elle également concentrer toutes les données de toutes les applications ou juste des schémas ?

Ou bien est-ce que chaque instance agrège ce qu’elle peut de ses pairs et parvient à construire une image globale ?

CRDT permet de distribuer des updates et merges mais avec la condition « eventual delivery » donc que toutes les instances communiquent entre elles tôt ou tard. Mais si des applications font des modifications en local est-ce que le risque de ne pas atteindre cette condition augmente ?

1 « J'aime »

il me semble que le travail de @niko.plp sur nextGraph est également base sur les CRDT mais que le paradigme est local first contrairement à Solid. Je me trompe?

1 « J'aime »

C’est bien ca Simon :slight_smile:

Quand a la reponse de @rmkn, je pense que tu seras interessé de voir ce que NextGraph peut faire dans ce domaine. La premiere version est encore repoussée un peu mais de la documentation va arriver tres bientot. Je te tiendrai au courant de la premiere release

4 « J'aime »

On peut faire du local first avec Solid. Noel de Martin en fait également la démonstration dans la vidéo il me semble. En tout cas je l’ai déjà vue faire une démo en local first avec Solid. Il me semble d’ailleurs que Media Kraken peut être utilisé en local first.

Pour rappel, la spécification Solid est orientée serveur, elle ne s’occupe pas de ce qui se passe côté client. Cela est capté par la dimension client-client dans laquelle on est libre de faire ce que l’on veut. Pour d’éventuels traitements spécifiques côté serveur, nous sommes également libres de passer par des agents.

4 « J'aime »