Interface
Apps driven by events improve user experience. The user interface is not blocked and is instead driven by asynchronous events which can be subscribed to for updates. This is a paradigm shift from the previous model that was ruled by the spinning progress wheel or loading bar. Now, we can return some minimal guarantee that the event was added to the queue, update the page accordingly with the return value and then listen for any further updates in the future in our code.
Improved error recovery
The biggest benefit of making applications event driven is the way in which error handling and recovery can be improved. If the event failed to get added to the queue, our UI can provide a smooth opportunity to retry on failure – making the logic simple when compared to traditional architectures with endless state callback functions and complicated loops.
Optimistic updates: better for end-users
One of the benefits of this event driven approach is that we can notify the user of what our expected UI state will be. If we trigger an action, that is guaranteed to be reliable and atomic, we know that it will be a matter of time until our application interface gets the response we are waiting for. This pattern can be seen with pulsing gray boxes or outlines that are often used as placeholders for the different use cases identified.