Event-driven computing is a model in which programs perform work in response to triggering events. Event-driven programs may be used to automate systems and deliver services for end users or to automate processing in machine-to-machine (M2M) environments.
The integral entities in an event-driven architecture (EDA) are event creators, which initiate events and event consumers, which receive information about events and may be involved with processing related to them. In an event-driven environment, huge numbers of creators and consumers typically exchange status and response information in near-real time.
An event, in this context, is any detectable occurrence that has been defined as significant to system hardware or software. An event could be a user action, a transmission of sensor data, a program load or an error, among an almost infinite number of other possibilities. Event-driven applications are designed to detect events that have particular significance to the environment they serve. Most event-driven computing is based on event-condition-action rules (ECA rules) which specify what code to execute (what action to take) when a particular event occurs and the stipulated conditions exist. Event-driven systems may use context awareness to guide responses to events, based on variable environmental conditions.
The event-driven paradigm contrasts with the time-driven approach.