Meteor support for PostgreSQL using OxideDB / FerretDB #12150
Replies: 7 comments 19 replies
-
OK - So I've messed with this a little bit. I created a repo to play around with it using docker-compose. https://github.com/wreiske/meteor-ferretdb So far it works up until step07 of the blaze tutorial. As soon as the login code is added, it fails because FerretDB does not yet support the $addToSet modifier. FerretDB/FerretDB#825 Meteor-FerretDB.mp4I'll do an oxide test when I get a free moment. |
Beta Was this translation helpful? Give feedback.
-
Found some time to work on an oxide test. No luck. The meteor user accounts package adds an index to emails.address and it looks like oxide isn't creating the index correctly in postgresql. A more simple example may work, but it looks like FerretDB may be more promising at this time.
|
Beta Was this translation helpful? Give feedback.
-
I like such initiatives, but by looking at the current state of both, it's far from being production ready. At the same time, there's nothing that Meteor actually has to do here - once it becomes a truly drop-in replacement for MongoDB, all you'll need to do will be to provide a However, I admire the reactiveness of @fcoury - keep this up! As probably no one will share their codebase to debug any of these, you could run something like Rocket Chat to find even more bugs. (And a sidenote for @fcoury - I read a few PRs in Oxide's repo, and it'd be great to build some more extensive test suite. Maybe you could even adopt the ones that MongoDB uses internally and test it in a more black-box way?) |
Beta Was this translation helpful? Give feedback.
-
I've come past this discussion, and I've found it to be looking really good! I admire your efforts a lot @fcoury! We will love to have something like this working out of the box with Meteor. |
Beta Was this translation helpful? Give feedback.
-
Hi all, thank you so much for your interest in FerretDB, I am one of the maintainers of FerretDB. One question to @Grubba27 and possibly others: how important is it for FerretDB to support OpLog tailing in order to be useful for Meteor-based apps? Is it possible to fall back to polling in case this feature is not supported? This is something we are wondering about, as we attempted to support BigBlueButton in the past. We will be looking at the rest of the issues raised here, as we are approaching a level of compatibility which enables us to concentrate on specific features. Also thank you for your work on checking compatibility @wreiske. Please do let me know if we can help with your specific use case when it comes to replacing MongoDB. |
Beta Was this translation helpful? Give feedback.
-
It looks like the Ferretdb project was recently featured on Hacker News. https://news.ycombinator.com/item?id=36590834 |
Beta Was this translation helpful? Give feedback.
-
Hi, https://github.com/FerretDB/FerretDB/releases/tag/v1.18.0 |
Beta Was this translation helpful? Give feedback.
-
My employer is doing some work with Percona. During one of our calls, after mentioning that we use MongoDB heavily for our meteor projects, the Percona SME mentioned a cool project called FerretDB. FerretDB is "a stateless proxy, which converts MongoDB protocol queries to SQL, and uses PostgreSQL as a database engine. This will be compatible with MongoDB drivers, and should work as a drop-in replacement to MongoDB in many cases."
https://www.ferretdb.io/
I sent this project to the dev team over at Rocket.Chat, a major player in the Meteor / MongoDB world, and @geekgonecrazy sent me this: https://github.com/fcoury/oxide
Oxide is much like FerretDB, indeed, "the project was heavily inspired by FerretDB and is on its early days. The main difference is that there is no intention to support any database other than PostgreSQL (FerretDB is also supporting Tigris) and it's written in Rust, as opposed to Go."
I'd like to start a discussion about these different tools and potentially others like them. Would it make sense for Meteor to support these types of tools as well, or at least mention them in documentation?
meteor create --blaze --db-engine=ferretdb
or something similar could be created to start up a PostgreSQL with FerretDB or OxideDB.Change streams and OPLOG might be interesting.
I'll report back here if the TODO list example app works out of the box or if there are any weird idiosyncrasies.
Beta Was this translation helpful? Give feedback.
All reactions