3 ms·
Horizontal scaling is a delicate art. IMHO It's must be achieved by keeping in mind all 4, end users, business use case, application server and database. Trad
by truth_seeker 5y ago
Horizontal scaling is a delicate art. IMHO It's must be achieved by keeping in mind all 4, end users, business use case, application server and database.
Traditional RDBMS are near best possible solution as long as vertical scaling is concerned and also the number of features they provide, both sql and nonsql. Distributed SQL databases are good at horizontal scaling and query engine and they are getting better.
Divide and Rule method always gave me nice control over deployment and architecture complexity. Before adoption of Distributed SQL, I would rather consider traditional RDBMS (or should I say data platform ) like PostgreSQL, application server as reusable component at high level architecture. More kind of lego blocks but few in numbers.
I would rather implement sharding at business use cases through application logic level ( NodeJS / JVM / Whatever) by having few major individual services ( not microservices for each function ) instead of having monolith and if thats not enough then further shard at user level in application server layer and not database layer. For aggregation of data and analytics purpose we can have different computation servers ( either PG itself through use of fdw or apps written in general purpose language) querying the read replicas which are specifically deployed for this purpose.