3 ms·
One of the silliest things you can do to cripple your performance is build something that is artificially over distributed, injecting lots of network delays bet
by drob518 1y ago
One of the silliest things you can do to cripple your performance is build something that is artificially over distributed, injecting lots of network delays between components, all of which have to be transited to fulfill a single user request. Monoliths are fast. Yes, sometimes you absolutely have to break something into a standalone service, but that’s rare.
- hedora 1y agoI've notice a strong correlation between artificially over-distributing, and not understanding things like the CAP theorem. So, you end up with a slow system that's added a bunch of unsolvable distributed systems problems on its fast path. (Most distributed systems problems are solvable, but only if the person that architected the system knows what they're doing. If they know what they're doing, they won't over-distribute stuff.)
- drob518 1y agoYes, that too. If you look at the commits for Heisenbugs associated with the system, you have a good chance of seeing artificial waits injected to “fix” things.
- Groxx 1y agoYou can solve just about any distributed systems problem by accepting latency, but nobody wants to accept latency :) ...despite the vast majority of latency issues being extremely low-hanging fruit, like "maybe don't have tens of megabytes of data required to do first paint on your website" or "hey maybe have an index in that database?".
- hedora 1y agoWell, yeah, but the people that create the issues typically solve them by just corrupting the crap out of app state and adding manual ops procedures.
- gowld 1y agoThere's no need to deploy separate service on separate machines.