A Stream-Stream Join combines two or more unbounded data streams based on a common key and typically within a specified time window constraint. Since both inputs are continuously changing, the system needs to maintain state for potentially matching events from each stream that have arrived within the join window. RisingWave supports stream-stream joins defined using SQL.