&gt; And you need to have reliable &#x27;rollbacks&#x27; on the client when server rejects the action for some reason....&#x27;ve solved all these problems eventually, but it took much more time for me than building the happy path.<p>I&#x27;m sure you figured this out, but having an immutable data structure at the root of your React application is great for rollbacks.  And then maintain an array with a reference to the various data structures, however deep you need (within reason), and pop or push them as needed to rollback&#x2F;roll forward.