Hi! There are always tradeoffs. The MVI pattern itself (regardless of the framework) has two main differences from MVVM. 1. State is represented by one class, so you need the Reducer. 2. View is passive and stateless, and is not responsible for subscribing to ViewModel. Overall you need more code for MVI, and some code may look like boilerplate. This is due to better separation of concerns, compile time safety, single source of truth.