title: Orchestrating multiple actions
body: <p>It’s unclear to me how to coordinate multiple, sequential actions in Redux. For example, I’ve got an app that has a summary panel on the left and a CRUD panel on the right. After the user CRUDs, I want the app to automatically update the summary. I also want the ability to refresh the summary and CRUD independently of each other as well. In other words, I <em>don’t</em> want the CRUD actions to have to know about the summary or any other future downstream follow-on actions (or vice versa). Is there a best practice to coordinate this without having my action creators know about other actions?</p>
  
  <p>For example, here’s the (thunk) action creator for clearing a collection of entities (a CRUD action). Right, now it tightly couples the <code>fetchSummary()</code> dispatch.</p>
  
  <pre class="lang-js prettyprint-override"><code>export function clearCollection(collection) {
      return function(dispatch) {
          dispatch(requestCollectionClear(collection));
  
          return doClearCollection(collection)
              .then(function(coll) { 
                  dispatch(receiveCollectionCleared(coll))
              })
              .then(function() {
                  dispatch(fetchSummary()); // &lt;-- How do I chain actions without tight coupling?
              });
              // TODO: .catch()
      }
  }
  </code></pre>
  
  <p>where <code>requestCollectionClear()</code> kicks off the async action and <code>fetchSummary()</code> is the action creator for the subsequent step in the workflow. What’s the best pattern to separate <code>fetchSummary()</code> from <code>clearCollection()</code>, decoupling them for use independent of each other?</p>