1. A method comprising: storing a plurality of complex event processing (CEP) rules, the CEP rules being based on a plurality of events that are to be monitored; pre-processing the CEP rules by generating and storing a de-duplicated list of events from the plurality of events that are to be monitored, resulting in a separately stored de-duplicated list of events; comparing a received event from a received event stream to events in the separately stored de-duplicated list of events and when a match between the received event and any one of the events in the separately stored de-duplicated list of events is detected, storing the received event in an input repository; and applying the plurality of CEP rules to the received event in the input repository; wherein pre-processing the CEP rules comprises: identifying, in each of the plurality of CEP rules, one or more events to be detected in the received event stream that contribute to satisfaction of that CEP rule; and generating the de-duplicated list of events to be detected from the received event stream based on the identified events in each of the plurality of CEP rules.