A new open source database, FerretDB, aims to make it easy for anyone to use MongoDB, without having to be bound by the latter’s more restrictive Server Side Public Licence (SSPL) – and is now generally available (GA).
FerretDB, GA under a permissive Apache 2.0 licence from April 2023, is not a new NoSQL database.
Rather, it is an open-source, stateless proxy that converts MongoDB 6.0+ wire protocol queries to SQL — with users able to either deploy PostgreSQL or Tigris as an underlying database engine. Users can, FerretDB says, run the same MongoDB protocol queries without needing to learn a new language or command.
(Curious DBAs and others can see the list of supported commands here.)
That may be helpful for startups not willing or able to comply with MongoDB’s SSPL licence or pay for the DBaaS it providers, but which are keen to attract developers versed in MongoDB’s syntax and structure – with the database highly popular for its flexibility and uses for managing semi-structured or unstructured data.
Equally, it may be a fit for those wanting to host one or two open source MongoDB applications but ultimately wanting to place them into the same PostgreSQL cluster as applications running on the latter database.
"FerretDB provides an additional choice – the MongoDB developer experience coupled with PostgreSQL as a very mature backend data store and that also has a fantastic community and toolset."
(Database engines like FerretDB “wrapping” different storage engines is not unusual. MongoDB itself wraps WiredTiger– the database storage engine it bought back in 2014 – while MySQL wraps InnoDB and RocksDB.)
Alexander Fashakin, of the FerretDB team, said “[FerretDB now has]
- 👨🏻💻 Over 40 code contributors with more than 130 merged pull requests from our community⭐️
- ⭐️Over 5300 Stars and 200 Forks on GitHub
- 🔥 Over 100 running instances with telemetry enabled
- ⏫ Over 10000 FerretDB downloads
The release last week (May 9) of 1.1.0 added support for aggregation pipelines, SAP HANA, more commands and nine new contributors. FerretDB’s production image ghcr.io/ferretdb/ferretdb is recommended for most deployments. It does not include PostgreSQL or other backends, so users must run them separately, e.g. with Docker Compose, Kubernetes, et al.
Percona's Zaitsev noted in an emailed comment that "the MongoDB protocol has become a de-facto standard for Document Databases. While FerretDB is the leading Open Source project, there is also Percona’s own Distribution of MongoDB Server based on the source available version. There are a variety of proprietary products that support the MongoDB protocol -- AWS DocumentDB, Microsoft CosmosDB -- and there are MongoDB compatible solutions available from Oracle, IBM, and MariaDB too. I think such broad vendor support will at some point lead to creation of a de-facto standard based on MongoDB, similar to SQL for relational databases which provides substantial interoperability between database products while allowing each one to have its own flavour or extra features.."