Reactive mvvm. In master branch you will find this architecture using RxJava2. In coroutines branch you will find the same approach with Coroutines.