I&#x27;m a hardcore imperativist right now, so don&#x27;t take this as authoritative, but here&#x27;s my understanding of how that works:<p>Think of your data as one reality in the set of all possible realities. None of them exist or don&#x27;t exist, they&#x27;ll just receive human attention or they won&#x27;t. Instead of an inbox with an ID and a current state, you just store events that happened and a user might say show me the end state of the timeline that started at event d79se5k. They might also ask you for the timeline starting at a different point.<p>There&#x27;s no &quot;current state&quot;. You&#x27;re just ready to answer questions about hypothetical realities. And while some realities are more likely to be computed (and cached) that&#x27;s only because they correspond to some key facts that a human is going to look up.<p>Put another way, imagine a soup of unrelated facts. Your code is a way to project those facts into different mathematic spaces. You never just say &quot;what&#x27;s the current state&quot; you have to actually write out specifically what you mean as a query.<p>Sorry for the vagueness. I&#x27;m just putting out there my fuzzy understanding until someone else can write something better. :)<p>I&#x27;m really interested this approach, and I think a lot of data should be immutable. Sadly, a lot of people are treating immutability as a religion these days, which causes problems when computation is better suited to imperative structures.