Flux application architecture
Imagine you've developed a multi-user chat app. The interface has a user list, private chat windows, an inbox with chat history and a notification bar to inform users of unread messages.
Millions of users are chatting through your app on a daily basis. However, there are complaints about an annoying problem: the notification bar of the app will occasionally give false notifications; that is, a user will be notified of a new unread message, but when they check to see what it is, it's just a message they've already seen.
What I've described is a real scenario that Facebook developers had with their chat system a few years ago. The process of solving this inspired their developers to create an application architecture they named Flux. Flux forms the basis of Vuex, Redux and other similar libraries.
Facebook developers struggled with this zombie notification bug for some time. They eventually realized that its persistent nature was more than a simple bug; it pointed...