React / Redux loading data with side effects
<p>Let's say I have a stub of a booking system. </p>

<p>When I create a booking, I can search among our customers and select which customer I'm booking. Upon selecting a customer, the associated customer contacts are loaded as a side effect. As a user, I have to pick one of these contacts for the booking. </p>

<p>Let's pretend my state shape is something like this: </p>

<pre><code>{
    customer: {id: 1, name: "Dandy Inc"}
    customerContacts: [{id:1, name: "John Doe"},{id:2, name: "John Doe"}]
    customerContactId: 2
}
</code></pre>

<p>Upon save, I only save customerId and customerContactId. </p>

<p>Now let's say I want to edit this booking at a future point in time. </p>

<p>I can either </p>

<p>1) Fetch the data I have, and basically "replay" the actions to trigger the side effects that I need (for instance, set the customer and trigger the side effect of loading the customer contacts) 
or </p>

<p>2) Fetch the data I have, manually load any extra data I need, and then set the complete application state in one go. </p>

<p>What are your thoughts on the best route to proceed? This is a simplified example, let's say the real world scenario has at least 2-4 additional side effects that need to be triggered.</p>