This thesis proposes a novel window aggregate sharing approach for out-of-order stream processing. We combined together the best of two worlds: the Google dataflow model for out-of-order stream processing and the Cutty aggregate sharing strategy. To our knowledge, our solution is the only aggregate sharing strategy for out-of-order stream processing that supports sliding, tumbling and session windows. Based on the experiments with the real world dataset DEBS12  and a 3% out-of-order level, our solution has 1.24 higher throughput than the current implementation in Flink. Moreover, we show that the throughput of our solution becomes higher, as the out-of-order level increases.