Cassius Pacheco hi cassius, this is great and thank you very much for the quick response. it is funny that right after sending this message I also came up with a similar solution. although in my case I opted in to having each view model to define its own possible routes, so that it doesn’t have the full power of accessing anywhere in the app. so it emits events from the view model (such as emitting second event to the navigationEvents publish subject) which gets observed in the view state and then view state does the navigation. i liked the fact that you abstracted the observation part and put that to the base class. also liked the AppRouteAction enum you defined to even further abstract the routing. great job for one of the most complete and clean flutter architecture post.