Un système de fichiers adossé à une base de données
La plupart des bases de données stockent leurs données sur le disque, mais les fichiers sous-jacents restent opaques : blocs binaires, formats internes, pages chiffrées. Il est impossible d’ouvrir un fichier, d’y modifier quelques lignes et de voir l’état de la base changé. TigerFS, un outil développé par Alex Pliutau et décrit dans une publication technique, propose une approche radicalement opposée : utiliser le système de fichiers lui-même comme source de vérité, tout en le faisant reposer sur PostgreSQL.
Le principe est simple : chaque fichier devient une ligne dans une table PostgreSQL, chaque dossier devient une table, et le contenu d’un fichier devient une colonne. Plusieurs utilisateurs peuvent lire et écrire simultanément les mêmes fichiers avec toutes les garanties ACID offertes par le moteur relationnel.
Comment fonctionne TigerFS ?
TigerFS monte une base de données PostgreSQL en tant que système de fichiers. Sur Linux, il utilise FUSE (Filesystem in Userspace) ; sur macOS, il recourt au protocole NFS (Network File System). Le daemon TigerFS fait le pont entre les appels du système de fichiers et les requêtes PostgreSQL.
L’outil propose deux modes d’utilisation :
-
File-first : l’utilisateur travaille avec des fichiers ordinaires (Markdown, frontmatter, dossiers, outils Unix standards). Tout est automatiquement transactionnel et versionné. Les éditeurs comme Vim, Cursor, Claude Code ou les scripts shell fonctionnent sans adaptation.
-
Data-first : l’utilisateur monte une base PostgreSQL existante et l’explore comme un système de fichiers avec les commandes
ls,cat,grep,find. Les tables deviennent des dossiers, les lignes des fichiers.
Un intérêt marqué pour les agents d’intelligence artificielle
Selon l’auteur, ce modèle est particulièrement pertinent pour les agents d’IA. Ces programmes ne se soucient guère des SDK ou des tableaux de bord ; ils aiment travailler avec le système de fichiers : ls, cat, find, grep, les pipelines shell. TigerFS permet aux agents de manipuler des fichiers ordinaires tout en bénéficiant des garanties transactionnelles de PostgreSQL en arrière-plan.
Un système de workflow peut ainsi se réduire à des déplacements de fichiers entre dossiers todo/, doing/, done/. La commande mv devient un outil de gestion d’état, sans couche d’orchestration supplémentaire.
Démonstration avec un blog
Pour illustrer le concept, Alex Pliutau propose de construire un mini-blog basé sur PostgreSQL, entièrement géré via des fichiers Markdown.
L’installation sur macOS s’effectue par une commande curl suivie de l’installation de PostgreSQL. Une base de données est créée, puis montée avec TigerFS :
createdb shinyblog
tigerfs mount postgres://localhost/shinyblog ~/tiger
tigerfs status
Une application TigerFS se configure via un petit dossier .build. En écrivant echo "markdown" > ~/tiger/.build/posts, on définit un type de contenu. En ajoutant history, on active le versionnage.
L’utilisateur peut alors créer un article dans un éditeur :
vim posts/article-one.md
Le fichier contient un en-tête YAML (titre, auteur, tags) et le corps en Markdown. Le frontmatter YAML devient des colonnes PostgreSQL, le corps Markdown devient le contenu textuel.
Implications et perspectives
TigerFS brouille la frontière entre le système de fichiers et la base de données. Il offre une interface familière pour les développeurs (les commandes Unix) tout en apportant la puissance d’un SGBD relationnel. Cela pourrait simplifier de nombreux flux de travail, notamment dans le domaine de l’intelligence artificielle où les agents interagissent nativement avec le filesystem.
L’outil est encore jeune, mais son approche séduit par son élégance conceptuelle. Elle permet d’envisager des systèmes où la persistance, le versionnage et les requêtes complexes sont accessibles depuis le terminal, sans code supplémentaire.