An event handler is a callback routine that operates asynchronously and handles inputs received into a program (events). In this context, an event is some meaningful element of application information from an underlying development framework, usually from a graphical user interface (GUI) toolkit or some kind of input routine. On the GUI side, events include key strokes, mouse activity, action selections, or timer expirations. On the input side, events include opening or closing files and data streams, reading data and so forth.
Some software architectures operate almost entirely by producing, managing, and consuming events. Nearly all software architectures must include at least some event handling capabilities, if only to deal with out-of-bounds conditions and errors.