News for hackers. Stuff that matters.
Re:JSX over the Wire by yawaramin on Wednesday April 16, 2025 @11:25PM (#43712801)
Sorry what do you mean by 'thrashing' in this context?
Re:JSX over the Wire by tantalor on Thursday April 17, 2025 @09:20AM (#43716428)
Reload causes skew causes reload
Re:JSX over the Wire by yawaramin on Thursday April 17, 2025 @10:18AM (#43717230)
How does reload cause skew? Reload will just load the latest version of the webapp. That's the point.
Re:JSX over the Wire by tantalor on Thursday April 17, 2025 @03:47PM (#43721316)
If you force a reload before the rollout is complete, the user will still experience skew, because you haven't finished the rollout. The website will be completely unusable for a significant fraction of users. You might as well turn off the website during the rollout. This is the main concern of skew - how to keep the website usable at all times for all users across versions.

If your rollout times are very short then skew is not a big concern for you, because it will impact very few users. If it lasts hours, then you have to solve it.

After the rollout is complete, then reload is fine. It's a bit user hostile but they will reload into a usable state.

Re:JSX over the Wire by ricardobeat on Thursday April 17, 2025 @06:19PM (#43722841)
Stickiness at the load balancer level helps mitigate these issues.
Re:JSX over the Wire by yawaramin on Sunday April 20, 2025 @02:09PM (#43745390)
If a webapp rollout lasts hours, you have a much bigger problem than skew which needs to be addressed urgently.
Re:JSX over the Wire by esprehn on Sunday April 20, 2025 @10:29PM (#43748042)
For most large scale apps (web or native) rollouts take multiple hours or even days. Ramps are slow to avoid widespread incidents and allow canary analysis to detect issues.
Re:JSX over the Wire by yawaramin on Monday April 21, 2025 @10:11PM (#43758483)
If you are at that scale then surely you put up some load balancers which can look at the client request (eg a request header `Accept-Version: abc123` or whatever) and route it to the correct backend server that can handle the request.

If you're not at that scale ie if your app deploys in a few seconds then just forcing a reload seems like a perfectly feasible strategy.