FerretDB: De hybride oplossing voor moderne databasebehoeften
In de wereld van databases heeft MongoDB jarenlang de standaard gezet voor wendbaarheid en flexibiliteit. Met zijn documentgeoriënteerde model en gebruiksvriendelijke drivers bleef het een populaire keuze onder ontwikkelaars. Echter, de recente licentiewijzigingen naar SSPL hebben voor een verschuiving in de perceptie gezorgd, waardoor gebruikers nu op zoek zijn naar openere alternatieven. In dit kader komt FerretDB naar voren, een innovatieve oplossing die de gebruikerservaring van MongoDB behoudt, terwijl het de data opslaat in PostgreSQL.
Wat is FerretDB?
FerretDB is geen database in de traditionele zin, maar een proxy die fungeert als tussenpersoon tussen MongoDB-klanten en een PostgreSQL-database. Het maakt gebruik van de DocumentDB-extensie om JSON-achtige structuren te ondersteunen en zet automatisch de BSON-protocoloperaties van MongoDB om naar standaard SQL-queries.
Dit betekent dat elke applicatie die gebruikmaakt van MongoDB-drivers kan werken met FerretDB zonder ook maar één regel code te hoeven wijzigen.
Architectuur en werking
FerretDB fungeert als een transparante tussenlaag. Het ontwerp is compatibel met clients zoals mongosh
, Compass en bibliotheken zoals Mongoose of PyMongo.
Functioneel schema:
- Klant of applicatie met MongoDB-driver → FerretDB → PostgreSQL met JSONB-ondersteuning
Dankzij deze architectuur kunnen ontwikkelaars de ontwikkelervaring met MongoDB behouden, maar profiteren van de betrouwbaarheid, transactionele consistentie en tools uit het PostgreSQL-ecosysteem.
Waarom kiezen voor FerretDB?
FerretDB is ontstaan uit de noodzaak om een echt open source-alternatief voor MongoDB te bieden, zonder de beperkingen van de SSPL. Hier zijn enkele van de belangrijkste voordelen:
Apache 2.0 Licentie
In tegenstelling tot de SSPL van MongoDB, die niet door de OSI wordt erkend en commerciële beperkingen heeft, kiest FerretDB voor een licentie van Apache 2.0, die breed wordt geaccepteerd in zowel bedrijfsmatige als gemeenschappelijke omgevingen.
Volledige compatibiliteit met MongoDB
FerretDB ondersteunt de belangrijkste MongoDB-operaties:
find
,insert
,update
,delete
- Indexen
- Aggregatie-operaties
- Ruimtelijke queries (in ontwikkeling)
Betrouwbaarheid van PostgreSQL
De data wordt opgeslagen in PostgreSQL met gebruik van JSONB-kolommen, wat onder andere het volgende mogelijk maakt:
- Naleving van ACID-principes
- Compatibiliteit met SQL-tools
- Integratie met Kubernetes-omgevingen, geavanceerde back-ups en native replicatie
Duurzame infrastructuur
FerretDB speelt in op de trend naar open infrastructuren, die eenvoudig te integreren zijn in platforms zoals Docker, Kubernetes of multicloud-omgevingen.
Vergelijking: FerretDB vs MongoDB
Kenmerk | MongoDB Community Edition | FerretDB + PostgreSQL |
---|---|---|
Licentie | SSPL (niet OSI) | Apache 2.0 |
Opslagmotor | WiredTiger | PostgreSQL (JSONB) |
Compatibiliteit met drivers | Natively | Compatibel |
SQL-queries | Nee | Ja |
Inzetflexibiliteit | Gemiddeld | Hoog |
Productiematuriteit | Hoog | Gemiddeld (in groei) |
Beginnen met FerretDB (Docker)
Voor snelle tests biedt FerretDB een vooraf geconfigureerde Docker-image:
docker run -d --rm --name ferretdb -p 27017:27017 \
-e POSTGRES_USER=ferret \
-e POSTGRES_PASSWORD=ferretpw \
ghcr.io/ferretdb/ferretdb-eval:2
Deze image bevat:
- FerretDB
- PostgreSQL met DocumentDB-extensie
- MongoDB Shell-client
Opmerking: deze configuratie zal geen data bewaren na uitschakeling. Voor productie wordt een robuustere installatie aangeraden zoals in de officiële documentatie beschreven.
Gebruiksscenario’s en ecosysteem
FerretDB heeft al ondersteuning in platforms zoals:
- FerretDB Cloud
- Tembo
- Civo
- Elestio
- Cozystack
Het wordt gezien als een ideale oplossing voor:
- SaaS-projecten die compatibiliteit met MongoDB vereisen zonder licentiebeperkingen
- DevOps-teams die multiclient-architecturen beheren
- Ontwikkelaars die NoSQL-mogelijkheden willen combineren met traditionele SQL-tools
Daarnaast is er een ingebedde versie als bibliotheek in Go, ideaal voor geavanceerde integraties in backend-diensten.
Gemeenschap en toekomst
Het project maakt snel vorderingen, met constante verbeteringen in support voor aggregaties, prestaties en compatibiliteit. De gemeenschap is actief, met open repositories en publieke roadmaps.
FerretDB vertegenwoordigt een brug tussen twee werelden: de dynamiek van MongoDB en de soliditeit van PostgreSQL. In een tijd waarin technologische soevereiniteit en transparantie belangrijker zijn dan ooit, positioneert deze open source-oplossing zich als een robuuste, efficiënte en ethische alternatief voor ontwikkelaars en systeemarchitecten.
Zoek je de wendbaarheid van MongoDB zonder verplichtingen? FerretDB kan de oplossing zijn.