Too bad that Google doesn’t provide an optional in memory cache layer that supports; You can write one yourself though by exercising the Mediator pattern (MediatorLiveData). I think that you don’t really need Single up there, you can stick to regular retrofit adapters by making a couple of interfaces along with an adapter. Also, in some cases where you need single-event behavior with LiveData, you can steal SingleLiveEvent.class from Google’s example android app. In addition, a mediator is sometimes needed with a single backing live data or observable instance, so you’ve got to make way around that as well.