Yes, part of the problem here is that Facebook has not yet open sourced it's own Dispatcher.  This will probably happen soon.  One missing method here that explains the use of promises is waitFor(). This method allows a store to wait for other stores to get updated first.  I had done this in an earlier draft of the application.  I could add that in, commented out as a block, as part of an explanation of what is happening here.  The only problem with that implementation is that if A waits for B and B waits for A, you have a circular dependency.  And a robust Dispatcher would throw an exception with a human readable error message in that scenario.  This is not possible with promises as far as I know.