Complex Event Processing (CEP) is an emerging enabling technology to achieve relevant situational knowledge from distributed systems in real-time or almost real- time. It gains more and more attention due to the industry hype and momentum regarding situation-aware computing and service-orientation. Support for CEP is considered to become a critical success factor for many businesses, especially regarding the recent failures of many industrial ventures due to insufficient situation-awareness. However, first experiences in using the CEP technology and setting up CEP applications have shown that the potential adopters have major problems in understanding and adequately designing and implementing successful CEP solutions. CEP engineering remains a laborious trial and error process with slow development and change cycles. The purpose of this paper is to contribute with a multi- dimensional categorization of CEP (design) patterns and a semantic design pattern language to describe successful CEP designs and build up libraries of CEP best practice descriptions and CEP patterns. This will lead towards a more structured approach for the design of CEP systems and will allow for the exact characterization and comparison of a broad variety of CEP media and systems. The intention is to support an interdisciplinary and efficient communication process about design solutions for various CEP problems in order to reach a thoroughly understanding of the proposed CEP pattern approach which offers an additional increase (1) in efficiency, aimed at cheaper and faster delivery of CEP-based systems by supporting CEP system engineers in their design decisions, and (2) in reusability of successful CEP solutions to frequently occurring CEP design problems in different domains.