3 ms·
11 years in and my one critique is: >Designing scalable systems when you don't need to makes you a bad engineer. You have to have a very good understanding of
by BobbyJo 6y ago
11 years in and my one critique is:
>Designing scalable systems when you don't need to makes you a bad engineer.
You have to have a very good understanding of the 'need' ahead of time or you're effectively just playing a kind of lotto. Do the bare minimum and it meets the need, you win. Do the bare minimum and it doesn't, get ready to start over, you lose.
- ZephyrBlu 6y agoYou can do the bare minimum with a path to scale, though. But it seems like when things 'scale' a lot of changes are required regardless, so I feel like it's a bit of a moot point.
- BobbyJo 6y agoPlus, 'scalable' can refer to the codes performance or the codes malleability, and the two are often conflated in blog posts :P
- jackcosgrove 6y agoYou can hedge by breaking up your codebase into logical services from the start which own their data sources and controllers. When the time comes to break up into microservices, you separate each service into its own application rather than grouping them in a monolith.
- BobbyJo 6y agoWriting services in a separable manner is, in a sense, writing scalable software.
- jackcosgrove 6y agoWrite the microservice, deploy the monolith. You can save on hosting costs. It's not perfect, no.
- potta_coffee 6y agoI disagree. Well designed systems can normally be scaled, the scaling problems are generally well understood. Scaling prematurely is silly and costs a lot of time and effort to support customers that don't exist.
- BobbyJo 6y agoI'm not clear on what part of my statement you're disagreeing with.