2 ms·
In web development, I've seen some systems that I can only call Singleton architectures, where horizontal scalability just isn't possible. For example, regular
by KronisLV 2y ago
In web development, I've seen some systems that I can only call Singleton architectures, where horizontal scalability just isn't possible. For example, regular monoliths you can stand up multiple instances of, balance the load between them and they'll be okay... except when a monolith has session data stored in memory or some other business state data, or uses the file system directly for storing certain files (or even doing batch processing on them), or just any local data instead of relying on something like Redis/Valkey/RabbitMQ/S3 or even just a table in an RDBMS.
It's not that you can't make the code that runs in those systems perform pretty fast, but it means that a whole class of problems that could be worked around by more instances suddenly cannot be mitigated that way.
Your DB connection pooler has some issues under a lot of load? Too bad. Your app has some sub-optimal logic in it that slows down the whole instance when specific long running scheduled business processes are running? So sad. Want separate instances for internal users and other systems to integrate with? Not happening.
Essentially, horizontal scalability lets you sleep more soundly in a world full of inconsistency.