My hottest take might be that "state management" isn't a real class of either problem or solutions. Instead, it seems to cover a confusion of:

- intra-component data propagation
- a bad way to reinvent events and broadcast channels
- a missing data synchronization layer

Each of these have distinct solutions, and "state management" tools do none of them credibly.

@slightlyoff Hmm, would it be reasonable to say that state management is an aspect of almost every application, but the needs (and thus the shape of the solution) is so highly application-specific that there’s little room for generic solutions at a much higher level than Redis?

@timbray Yes, exactly this. There are broad patterns that help you know which territory you're in, though.

For instance, if you're doing optimistic local commit against a complex data model over 50+ interaction sessions (without reloading), you need a sync tool.

If you're serving short-lived individual pages, you likely only need DOM events.