Présentation
Tangled propose la première forge de code réellement fédérée, c’est‑à‑dire un service où chaque utilisateur peut héberger les composants qu’il souhaite – Git, CI, API ou interface – tout en restant capable de collaborer avec les instances d’autres utilisateurs. Le modèle repose sur le protocole ouvert AT Protocol, qui assure la synchronisation des métadonnées via le firehose et garantit que les échanges restent interopérables même lorsque les serveurs sont distribués.
Architecture fédérée
Jusqu’à présent, l’interface web et le back‑end de Tangled formaient un monolithe Go nommé appview, fonctionnant sur un unique serveur suédois avec une base SQLite. Cette configuration limitait les performances aux utilisateurs situés à moins de 100 ms du datacenter. La nouvelle architecture sépare le front‑end, réécrit en Svelte et déployé aux bords du réseau, du back‑end, qui repose désormais sur bobbin, un indexeur purement en‑mémoire écrit en Rust. Bobbin est déployé dans plus de 11 régions, ce qui réduit la latence d’accès aux API et à l’interface pour les utilisateurs mondiaux. Le service de stockage du code et des métadonnées, nommé knot2, a également été migré de Go vers Rust et combine un serveur Git et un serveur SSH dans le même binaire, simplifiant le déploiement et la maintenance.
Modèle de données et sécurité
Le nouveau modèle de données introduit les lexiques org.tangled.*, remplaçant les anciens sh.tangled.*. Les objets collaboratifs (COB) – problèmes, pull‑requests, commentaires, réactions et étiquettes – sont stockés directement dans le dépôt Git sous forme de chaîne d’objets Git, ce qui les rend portables et synchronisables via le firehose AT. Chaque modification génère une attestation enregistrée dans le PDS (Personal Data Store) de l’auteur, signée par le DID de l’utilisateur, assurant une vérification bidirectionnelle de l’intégrité des métadonnées. Les comptes d’organisation sont de véritables comptes AT Protocol avec DID propre, gérés sans mot de passe et pouvant être associés à un domaine personnalisé (nom.tngl.sh). Les membres d’une organisation peuvent agir en son nom pour créer ou forker des dépôts, ce qui renforce la gouvernance décentralisée.
Implications et perspectives
En externalisant les services de lecture (bobbin) et d’écriture (knot2) tout en conservant la possibilité d’héberger chaque composant séparément, Tangled offre une flexibilité d’infrastructure rarement vue dans les forges traditionnelles. La capacité à étendre le système via des « knots » personnalisés – par exemple un knot exécuté sur Cloudflare Workers utilisant le produit Artifacts pour le stockage Git – montre que la plateforme est conçue pour être « agent‑friendly », c’est‑à‑dire facilement scriptable par des agents autonomes. Les nouvelles fonctionnalités, comme les PR empilés compatibles avec Jujutsu et le support de Git vanilla, élargissent l’adoption potentielle. Les prochaines étapes annoncées – dépôts privés, CLI, SDK multilingues – indiqueront si la fédération peut réellement remplacer les forges centralisées sans sacrifier l’expérience utilisateur.