There are several factors which make CEP a challenge:
• The evaluation of different kinds of data
• The quantity of the data needing to be processed
• The need to process this data in real-time / near real-time (expected response times range from a few milliseconds to 1-2 seconds)
• Consideration of historical data
• Consideration of current device state, which can differ from the last event received from a device / source
• Scalability
• Redundancy
The key is picking the right backend database solution (or many solutions) which has the features and qualities you need.