Царство превращает транзакцию в наблюдаемую

Иногда я хочу выполнить операцию записи после вызова службы с помощью Retrofit. Поскольку мои вызовы по умолчанию для сервера выполняются в потоке io, я просто хочу использовать тот же поток для операции записи Realm.

Я использую его вот так:

serviceInteractor.uploadMeasure(measure) .filter { uploaded: Boolean -> uploaded } // filter only the ones successfully uploaded .flatMap { realmInteractor.markMeasureSent(measure.timeStamp) } .subscribe( { success -> /* do nothing */ }, { inDebug { it.printStackTrace() } } ) 

Мое королевство наблюдает следующее:

 fun markMeasureSent(measureId: Long?): Observable<Unit> { if (measureId == null) Observable.just(Unit) return Observable.fromCallable { Realm.getDefaultInstance().use { it.executeTransaction { tRealm -> assertNotMainThread() val measure = tRealm.where(Item::class.java) .equalTo(item, measureId) .findFirst() measure.sent = 1 } } } } 

Является ли это правильным способом переноса транзакции Realm в наблюдаемую?