A method of forecasting in a complex event processing system how an event stream will behave in the future to adapt to expected high system load of the CEP system, the method comprising: (a) receiving an event stream including a plurality of events upon which a forecast is to be based; and for each received event in the event stream: (b) updating a reference window indicative of a predefined temporal range during which the forecast is to be computed so that the reference window ends with the received event, the reference window moving with the event stream, and (c) when a forecasting update policy indicates that the forecast is to be updated based on the received event: (d) updating a forecasting window indicative of a temporal range in which events are to be forecasted; and (e) while the time period of the forecasting window is not exceeded, (i) generating via at least one processor a next forecasted event and (ii) inserting the next forecasted event into the forecasting window; (f) publishing the forecasting window; and (g) if the forecasted processing load exceeds the capabilities of the CEP system, distributing SQL-based event queries of the CEP system to one or more other CEP systems, wherein the forecasted processing load of the CEP system is estimated based on the forecasted event stream characteristics and a cost model of the queries of the CEP system. (a) receiving an event stream including a plurality of events upon which a forecast is to be based; and (b) updating a reference window indicative of a predefined temporal range during which the forecast is to be computed so that the reference window ends with the received event, the reference window moving with the event stream, and (c) when a forecasting update policy indicates that the forecast is to be updated based on the received event: (d) updating a forecasting window indicative of a temporal range in which events are to be forecasted; and (e) while the time period of the forecasting window is not exceeded, (i) generating via at least one processor a next forecasted event and (ii) inserting the next forecasted event into the forecasting window; (f) publishing the forecasting window; and (g) if the forecasted processing load exceeds the capabilities of the CEP system, distributing SQL-based event queries of the CEP system to one or more other CEP systems, wherein the forecasted processing load of the CEP system is estimated based on the forecasted event stream characteristics and a cost model of the queries of the CEP system. (d) updating a forecasting window indicative of a temporal range in which events are to be forecasted; and (e) while the time period of the forecasting window is not exceeded, (i) generating via at least one processor a next forecasted event and (ii) inserting the next forecasted event into the forecasting window; (f) publishing the forecasting window; and (g) if the forecasted processing load exceeds the capabilities of the CEP system, distributing SQL-based event queries of the CEP system to one or more other CEP systems, wherein the forecasted processing load of the CEP system is estimated based on the forecasted event stream characteristics and a cost model of the queries of the CEP system.