1. A method of forecasting how an event stream will behave in the future, the method comprising: 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: 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 when a forecasting update policy indicates that the forecast is to be updated based on the received event: updating a forecasting window indicative of a temporal range in which events are to be forecasted; and while the time period of the forecasting window is not exceeded, (a) generating via at least one processor a next forecasted event and (b) inserting the next forecasted event into the forecast window; and publishing the forecast window.