Encadenamiento de solicitudes en Retrofit + RxJava

Tengo 2 API a las que quiero hacer una solicitud en secuencia y almacenar sus datos en SQLite.

Primero quiero hacer una solicitud a la APIA y almacenar sus datos en la tabla SQLa. Luego haga una solicitud a la APIB y almacenar sus datos en la tablab y algunos datos en la tablaa_b. Los datos almacenados ena_b es de solicitudB solo.

¿Cómo puedo hacer esto usando RxJava? Leí en alguna parte sobre el uso de flatMap para esto, algo como esto

apiService.A()
    // store in DB here? How? maybe use map()?
    .flatMap(modelA -> {
        // or maybe store modelA in DB here?
        return apiService.B().map(modelB -> {
            storeInDB()l // store B here ?
            return modelB;
        });
    });

Si no estuviera usando funciones lambda, esto se vería tan feo como las llamadas anidadas normales. ¿Es esta una mejor manera de hacerlo?

Respuestas a la pregunta(2)

Su respuesta a la pregunta