FerretDB 1.18 now has OpLog support. Trying replace MongoDB 6.x with FerretDB/PostgreSQL or FerretDB/SQLite

Hi,
I just got news, that FerretDB 1.18 now has support of OpLog. So I will be trying replace MongoDB 6.x with FerretDB/PostgreSQL or FerretDB/SQLite.

5 Likes

That’s great news! Thanks for sharing!

1 Like

Related, here is my database connection test, trying MongoDB and FerretDB:

When I asked for Meteor FerretDB examples, I got some replies here. Please help testing. Thanks!

From podcasts of Meteor 3 and Storyteller, I got some info that:

  • Upcoming MongoDB is making OpLog private, so Meteor team is thinking about changing to Change Streams
  • MongoDB is deprecating GridFS

I have not got FerretDB working yet, there was some problems with some database queries. While FerretDB has OpLog, I’ll try to find is there info about Change Streams in FerretDb.

2 Likes

Hey @xet7 I just spent a little while going through all the posts I could find where you discuss Meteor & FerretDB. Now with FerretDB in v2.2, as you surely know, OpLog tailing is supported. I wonder if you’re using FerretDB now in production with your app?

I tried it on a small app for me and had issues with the accounts package, which I was able to solve by avoiding the creation of any sparse index—see Guide: How to use Meteor with Postgres 😮 - #20 by meteorisgreat and The trusted source for JavaScript packages, Meteor.js resources and tools | Atmosphere

Would be great to know if and how it’s going with FerretDB at WeKan!

1 Like

I have not yet tried FerretDB 2.2. I’ll try sometime in near future.

2 days ago, at 2025-05-18, I talked about WeKan at Free Software Conference Ukraine:

https://github.com/wekan/wekan/releases/download/v7.90/2025-05-18_WeKan_at_Free_Software_Conference_Ukraine.webm

1 Like

Thank you for the update and the link! I’ll check it out.

1 Like

I’m correcting my own statement of earlier: the deadlocks were not caused by FerretDB not supporting sparse indexes. FerretDB 2.2 does support sparse & unique indexes—great! The deadlocks were causes by the accounts-base and accounts-password packages concurrently creating such indexes, which is handled well by MongoDB, but not well by FerretDB/Postgres. I updated my package to fix only what is essential to avoid this error, by simply making createIndexAsync sequential (using a promoise chain).