An event driven system is a common way to setup software. In event-driven architecture, event-handlers are registered for specific events. When an event occurs, the handlers are invoked. A great way to understand this concept is to build a project. W...