EventEmitter
It allows us to revers the flow of communication between objects and have them emit an event for whichever object listening to process it.
I think overall, Event Driven Programming helps build an application that grow nicely to meet a clients need.