Halfway up a Himalayan mountain might not be the usual place to start a database company but then maybe FerretDB is not a usual company.
Announcing the GA of FerretDB 1.0 this week, the company has its sights on MongoDB, the document database much beloved of developers looking for a friendly system with flexible schema.
It has built a stateless proxy designed to convert MongoDB protocol queries to SQL while taking advantage of the maturity of PostgreSQL as a database engine. PostgreSQL added support for the JSON document format in 2014.
The Register caught up with co-founder and CEO Peter Farkas, a veteran of Cloudera and open source support/consultancy Percona, to, erm, ferret out the company’s origins and reason for being.
“MongoDB is one of the most developer-friendly databases out there,” he said. “The reason why developers tend to prefer MongoDB is that it’s just insanely easy to use and very easy to interface with. It’s a nice developer experience, especially for those who are not very interested in database internals, how to set up a database cluster or coming up with a schema. Document databases are very flexible in this regard because your schema is actually in your application.”
Although there was a lot of respect for MongoDB in the developer community, there was a downside, he argued.
As The Register discussed last year, what is and what is not an open source database is moot. MongoDB adopted the Server Side Public License (SSPL) v1.0 in 2018. It requires that enhancements to MongoDB are released to the community, and restricts other companies from offering the database in other commercial products as a managed service to other users, for example. SSPL does meet all criteria for open source software set by the Open Source Initiative. Still, MongoDB argues it was necessary to protect its revenue model from copycat DBaaS systems offered by cloud hyperscalers.
Among open source database experts, the idea began to form for a pure open source MongoDB alternative. Farkas’s co-founders are Alexey Palazhchenko, a former Percona, Skype and Microsoft engineer, and Peter Zaitsev, Percona founder and high-performance MySQL expert. It was Zaitsev who introduced a spot of mountaineering into the FerretDB origin story.
“We came up with the idea in the Himalayas at the K2 to base camp. I was with Peter Zaitsev for three weeks in the Himalayas, and we were talking about stuff, and after a while, you run out of topics, and that’s when we started talking about MongoDB,” Farkas said.
Currently employing 10 people in a team scattered around the world, FerretDB is registered in the US. The 1.0 GA boasts support for the createIndexes
command. This will enable you to specify the fields you want to index. It promises no breaking changes will be introduced in the upcoming minor versions.
Interest from developers has been strong, Farkas said, but installations have so far been limited to the mid-to-lower end of the scale as it is unable to compete with MongoDB on high-end enterprise workloads, although it continues to talk to these businesses.
For now, the main customer base comes from users wanting to replace their MongoDB installations with their own existing PostgreSQL. “We are making it simple for them to run their databases by providing an alternative to MongoDB in the form of PostgreSQL, meaning they don’t have MongoDB as a cost,” he said.
As well as producing its database, the company is working to unite the document database movement. It has brought together the Document Database Community to talk about “technology challenges, assist in the emergence and development of techniques, and popularize solutions in the document database space.”
One of its projects is to develop a standard query language to work across document databases – analogous to SQL in the relational world – as an alternative to MongoDB’s Wire Protocol.
“There are document databases on the market which are very capable,” Farkas said. “But all of these have very different feature sets and very different interfaces in some cases, meaning that it is not possible for MongoDB customers to migrate to the services because some of the features are just not supported.
“We want to get all the document database vendors together, whether they are proprietary or open source, in the Document Database Community. We are holding discussions with the largest document database providers to create an open standard for document databases so we can have a unified document database market the same way SQL became the industry standard in the ’90s.” ®