What problem are we solving? Your front end code can quickly become unwieldy when building an application which has to react to a large variety of different events. For example, in an app using websockets it's not uncommon to see code like this: mySocket.addEventListener("message", (message) =>