Complex event processing (CEP) systems represent a mainstream approach for processing streams of data. Specifically, they target the definition and detection of high-level situations of interest, or composite events, starting from streams of primitive events collected from the external environment. In CEP, composite events are specified through user-defined rules, which express how to select, manipulate, and combine primitive events. Thanks to the capability of handling large volumes of information to isolate situations of interest, CEP represents a perfect solution for the management and online analysis of data in pervasive systems. Researchers and practitioners working on CEP focused on the creation of simple, yet expressive languages for the definition of CEP rules. At the same time, they also put significant effort on performance and scalability, defining efficient algorithms and rule evaluation mechanisms that enable high-throughput and low processing delay. This chapter focuses on both aspects. On the one hand, it presents the processing abstractions offered by existing CEP systems in details, focusing on the applicability to pervasive systems. On the other hand, it presents some of the processing algorithms and techniques that contribute to the performance of state-of-the-art CEP systems