3 ms·
What we do at my current job is server per multiple accounts each server holds 500-1000 "normal sized" customers and the huge or intensive customers get their o
by Thristle 6y ago
What we do at my current job is server per multiple accounts
each server holds 500-1000 "normal sized" customers and the huge or intensive customers get their own server with another 10-50 customers
Currently moving from EC2 + mysql 5.7 to RDS, mainly for ease of managing.
However, we dont use a tenent id in all tables to differentiate customers we use (confusingly named) DB named prefix + tenent id for programatically making the connection.
Have a single server + db for shared data of tenents like product wide statistics, user/tenent data and mappings and such things.
In the tenent table just have column for the name of the DB server for that tenent and that's pretty much it.
Migrations are handled by an internal tool that executes the migrations on each tenent DB and 99% of the time everything works just fine if you are careful on what kind of migration you do and how you write your code
Some pitfalls concern column type changes + the read replicas going out of sync but that was a single incident that only hurt the replica.