This: so many bugs, errors, challenges, and tradeoffs in web dev ultimately come down to understanding this fact. If you develop for the web you are working on a *distributed system*. Even worse, you have little control over your clients (who must be treated adversarially!).
Many forget that the client-server architecture is a *distributed system*. The request-response workflow we have historically used helped us forget it. However, if you keep a WebSocket connection open with bidirectional data, you can no longer ignore it. 🧵