Dealing with eventual consistency in your user interface can be tackled in a number of ways -- the most elegant involve essentially subscribing to events which notify you when read models have changed. It takes a change in approach, but pays off with the ability to easily add multiple asynchronous data sources to your program.
If you don't have multiple asynchronous services, or if you don't need specialized write models for performance, or you don't need to "scale", then consider keeping your read and write models in the same database and committing them with the same transaction. Event sourcing and reactive programming are deeply empowering, but they also require you to think differently.
For instance, you must accept that typical MVC code like "commit edit to ID(5), redirect to view ID(5)" will quite often fail to show latest updates. Instead, you will need to "bind this UI to ID(5) as it updates, send update to ID(5)".