Apartment
FerretDB
Apartment | FerretDB | |
---|---|---|
5 | 43 | |
2,648 | 8,564 | |
0.4% | 1.5% | |
0.0 | 9.8 | |
2 months ago | 4 days ago | |
Ruby | Go | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Apartment
-
Figma's Databases team lived to tell the scale
I recall a popular rails gem[1] once upon a time that provided multi-tenancy via postgres schemas.
As it turns out, even the company the initially developed the gem ended up ditching the approach due to some of the issues you outlined above.
Managing separate schemas feels like one of those nefarious decisions that make things simple _initially_ but get you into a world of hurt when you need to scale. The company is since defunct but they have an article where they discuss why they ditched the approach [2], TL;DR it's too difficult to maintain and scale
[1] https://github.com/influitive/apartment#tenants-on-different...
-
Is there a way to have rails return a different set of data depending on the hostname?
Looks like you're trying to implement multi-tenancy. You might also want to look at the apartment gem.
-
Create views to display all data managed by apartment gem
One strategy of the apartment gem is to store tenant data in dedicated schemas in a Postgres database.
- restart rails app from controller action
-
How we found and fixed a rare race condition in our session handling - The GitHub Blog
The other issue I think was with Apartment tenant switching and ActiveRecord's column cache. Some tenants had the updated columns and others didn't. Also with Puma. People love them some Puma! Me, I go with Passenger. Well, if the requirements are right that is...
FerretDB
-
Figma's Databases team lived to tell the scale
if you have postgres, just use https://github.com/FerretDB/FerretDB
-
NoSQL Postgres: Add MongoDB compatibility to your Supabase projects with FerretDB
FerretDB is an open source document database that adds MongoDB compatibility to other database backends, such as Postgres and SQLite. By using FerretDB, developers can access familiar MongoDB features and tools using the same syntax and commands for many of their use cases.
- FerretDB – Run Mongo over your Postgres instance
-
MongoDB’s New Query Engine
There is FerretDB. But they are not fully compatible to Mongo yet.
https://www.ferretdb.io/
- FerretDB: MongoDB Protocol for SQLite
-
Show HN: MongoDB Protocol for SQLite
Feature parity progress with apps:
https://github.com/FerretDB/FerretDB/issues/5
I presume, that after there is feature parity, then someone could run some benchmarks.
-
Please do not require AVX support for your software
Yep that's serious issue and it's similar to our case. Our main product can work just fine even without SSE 4.2 but MongoDB requires it and then indirectly leads to AVX1 support as we use MongoDB as storage. We did PoC with FerretDB last month and I think it may be good option for Gerylog: https://www.ferretdb.io
-
Chat-UI, the codebase of HuggingChat, is open sourced
Shout out to FerretDB, which is an in progress open source re-implementation of MongoDB atop PostgreSQL.
https://github.com/FerretDB/FerretDB
- FerretDB: A truly Open Source MongoDB alternative, built on Postgres
What are some alternatives?
Acts As Tennant - Easy multi-tenancy for Rails in a shared database setup.
MangoDB - A truly Open Source MongoDB alternative [Moved to: https://github.com/FerretDB/FerretDB]
Milia - Easy multi-tenanting for Rails5 (or Rails4) + Devise
mangodb - A database that operates at CLOUD SCALE
activerecord-multi-tenant - Rails/ActiveRecord support for distributed multi-tenant databases like Postgres+Citus
couchdb-best-practices - Collect best practices around the CouchDB universe.
rails_or - Cleaner syntax for writing OR Query in Rails 5, 6. And also add #or support to Rails 3 and 4.
server - ToroDB Server is an open source NoSQL database that runs on top of a RDBMS. Compatible with MongoDB protocol and APIs, but with support for native SQL, atomic operations and reliable and durable backends like PostgreSQL
pluck_all - A more efficient way to get data from database. Like #pluck method but return array of hashes instead.
badger - Fast key-value DB in Go.
SanitizeSqlLike - Backport #sanitize_sql_like method from Rails 4 for Rails 3. Sanitizes a string so that it is safe to use within an SQL LIKE statement.
p2p - 🖥️ P2P Remote Desktop - Portable, No Configuration or Installation Needed.