Fusionar observables dependientes

Tengo dos Observable que emiten el mismo tipo de datos. Pero ambos dependen del último valor emitido por el otro para su operador de escaneo como valor inicial. Necesito fusionarlos. No puedo hacer que uno se suscriba al otro porque mis Observable se disparan por diferentes valores. Estoy pensando en que los sujetos deberían estar involucrados, pero no estoy seguro de cómo.

 val intents: Observable<Intent> = ... intents .scan(MyViewState.default(), intentToStateReducer) intents .map(intentToActionMapper) .compose(actionDispatcher) .scan(MyViewState.default(), resultToStateReducer) 

Los dos Observable mantendrán sus propios estados. La fusión no les hará ver el último valor de los demás. Los nuevos estados de cada Observable se basarán en el valor anterior de su propia transmisión.