
In smaller systems, that chain is easy to follow. In larger systems, understanding behavior increasingly requires replaying a timeline of activity. To explain why a value changed, you trace dispatches and effects. To understand dependencies, you search for subscriptions or derived selectors. The structure exists, but it is implicit in the flow. And implicit architecture becomes harder to reason about as scale increases.
The cognitive cost of flow-centric thinking
Event-driven models, especially in their more structured forms, provided front-end engineering with much-needed rigor. They allowed teams to tame asynchronous complexity and formalize change management.
However, expressiveness does not automatically produce clarity. As applications grow, flow-oriented designs can obscure structural relationships. Dependencies between pieces of state are often inferred from dispatch logic rather than expressed directly. Derived values may be layered through transformations that require understanding not just what depends on what, but when updates propagate.

