Event-driven computing is a computing model in which programs perform work in response to identifiable occurrences that have significance for system hardware or software. Event-driven programs are often used to automate systems and deliver services in machine-to-machine (M2M) environments.
The two integral components of an event-driven architecture (EDA) are event creators and event consumers. Creators initiate events and consumers receive information about events and may be involved with processing related to them. In the Internet of Things (IoT), huge numbers of creators and consumers typically exchange status and response information in near-real time.
Event consumers typically subscribe to some type of middleware event manager. When the manager receives notification of an event from a creator, it forwards that event to all registered consumers. The benefit of an event-driven architecture is that it enables large numbers of creators and consumers to exchange status and response information in near real-time.
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.
If This Then That (IFTTT, pronounced to rhyme with "gift") is a popular online service that automates Web-based tasks so that when user-specified events occur, follow-up tasks are triggered and handled. IFTTT breaks tasks into "Do recipes," which are single actions such as "dim the lights" initiated by a smartphone tap, and "If recipes," which allow users to create chains of simple conditional statements, which are triggered based on changes to other web services.