FerretDB propose une architecture hybride qui traduit les commandes de MongoDB en SQL sur PostgreSQL, visant à redonner la liberté et la transparence exigées par de nombreux développeurs et infrastructures modernes.
Depuis des années, MongoDB symbolisait l’agilité et la flexibilité pour les développeurs. Son modèle orienté document et la facilité d’utilisation de ses pilotes en ont fait un incontournable dans l’univers des bases de données NoSQL. Cependant, le changement de licence vers la SSPL a entraîné un revirement dans la perception de nombreux utilisateurs, qui recherchent des alternatives plus ouvertes. C’est dans ce contexte qu’émerge FerretDB, une solution qui préserve l’expérience MongoDB tout en stockant les données dans PostgreSQL.
Qu’est-ce que FerretDB ?
FerretDB n’est pas une base de données à proprement parler, mais un proxy qui fait le lien entre les clients MongoDB et une base de données PostgreSQL. Il utilise l’extension DocumentDB pour supporter les structures JSON et traduit automatiquement les opérations du protocole BSON de MongoDB en requêtes SQL standard.
Cela permet à toute application utilisant des pilotes MongoDB de fonctionner avec FerretDB sans nécessiter de modifier une seule ligne de code.
Architecture et fonctionnement
FerretDB fonctionne comme une couche intermédiaire transparente. Son design est compatible avec des clients tels que mongosh
, Compass ou des bibliothèques comme Mongoose ou PyMongo.
Schéma fonctionnel :
- Client ou application avec pilote MongoDB → FerretDB → PostgreSQL avec support JSONB
Grâce à cette architecture, les développeurs peuvent conserver l’expérience de développement avec MongoDB tout en bénéficiant de la fiabilité, de la cohérence transactionnelle et des outils de l’écosystème PostgreSQL.
Pourquoi choisir FerretDB ?
FerretDB naît d’un besoin clair : offrir une alternative véritablement open source à MongoDB, sans les contraintes de la SSPL. Voici quelques-unes de ses avantages clés :
Licence Apache 2.0
Comparée à la SSPL de MongoDB, qui n’est pas reconnue par l’OSI et possède des limitations commerciales, FerretDB opte pour une licence Apache 2.0, largement acceptée et compatible avec les environnements d’entreprise et communautaires.
Compatibilité totale avec MongoDB
FerretDB supporte les principales opérations de MongoDB :
find
,insert
,update
,delete
- Indices
- Opérations d’agrégation
- Requêtes géospatiales (en développement)
Fiabilité de PostgreSQL
Les données sont stockées dans PostgreSQL en utilisant des colonnes JSONB
, ce qui permet :
- Conformité ACID
- Compatibilité avec les outils SQL
- Intégration avec les environnements Kubernetes, sauvegardes avancées et réplication native
Infrastructure durable
FerretDB s’aligne avec la tendance vers des infrastructures ouvertes, facilement intégrables dans des plateformes telles que Docker, Kubernetes ou des environnements cloud multicloud.
Comparatif : FerretDB vs MongoDB
Caractéristique | MongoDB Community Edition | FerretDB + PostgreSQL |
---|---|---|
Licence | SSPL (non OSI) | Apache 2.0 |
Moteur de stockage | WiredTiger | PostgreSQL (JSONB) |
Compatibilité avec les pilotes | Natif | Compatible |
Requêtes SQL | Non | Oui |
Flexibilité de déploiement | Moyenne | Élevée |
Maturité pour la production | Élevée | Moyenne (en croissance) |
Démarrer avec FerretDB (Docker)
Pour des tests rapides, FerretDB propose une image Docker préconfigurée :
bashCopierModifierdocker run -d --rm --name ferretdb -p 27017:27017
-e POSTGRES_USER=ferret
-e POSTGRES_PASSWORD=ferretpw
ghcr.io/ferretdb/ferretdb-eval:2
Cette image contient :
- FerretDB
- PostgreSQL avec l’extension DocumentDB
- Client MongoDB Shell
Note : cette configuration ne garde pas les données après l’arrêt. Pour la production, une installation plus robuste est recommandée, comme le décrivent sa documentation officielle.
Cas d’utilisation et écosystème
FerretDB bénéficie déjà d’un support sur des plateformes telles que :
- FerretDB Cloud
- Tembo
- Civo
- Elestio
- Cozystack
Il se présente comme une solution idéale pour :
- Projets SaaS nécessitant une compatibilité MongoDB sans restrictions de licence
- Équipes DevOps gérant des architectures multiclients
- Développeurs souhaitant mélanger des capacités NoSQL avec des outils SQL traditionnels
De plus, une version intégrée en tant que bibliothèque Go est disponible, idéale pour des intégrations avancées dans des services backend.
Communauté et avenir
Le projet progresse rapidement, avec des améliorations constantes dans le support des agrégations, la performance et la compatibilité. Sa communauté est dynamique, avec des dépôts ouverts et des feuilles de route publiques.
FerretDB représente un pont entre deux mondes : le dynamisme de MongoDB et la solidité de PostgreSQL. À une époque où la souveraineté technologique et la transparence sont plus importantes que jamais, cette solution open source se positionne comme une alternative robuste, efficace et éthique pour les développeurs et architectes de systèmes.
Vous recherchez l’agilité de MongoDB sans contraintes ? FerretDB pourrait être la réponse.