Complex event processing is a method of tracking and analyzing streams of information that combines data from multiple sources to infer events or patterns that suggest circumstances. The goal of complex event processing is to identify meaningful events (such as opportunities or threats) and respond to them before they happen or as quickly as possible after they happen. Complex event processing is closely associated with event-driven architecture and service-oriented architecture.