Efficient rebuilding of read model

I assume the problem is in re-building the model from scratch, not in processing events when on-line. If so, how about rebuilding the views offline i.e. having two data stores and when deploying new version (rebuilding vies), use the secondary (not currently used) store. When the secondary store is up-to-date, switch the client to use it (make it primary).

I had similar problem with my super slow single-threaded NHibernate-based view models in one project. It could process up to 30 events/s. With some clever code, without changing the actual projections and tech stack I could actually make it process 200 e/s but it turned out it is just easier to rebuild projections offline, even if it takes 2 days.

Szymon