When building an event-sourced systems, it's a common reflex to construct projections to answer queries efficiently instead of sifting through the event stream. But have you really checked just how inefficient it is to just check the events? We might just be able to find a clever way to index the events on the fly, making do without CQRS and projections entirely.
This talk is a report on a highly distributed application for configuration management in a large network of car shops among mobile devices that are only sporadically connected.
We started out maintaining some carefully chosen projections. These were to be hard to maintain consistently, and, as it turned out, unnecessary: Just going through the events selectively was plenty fast enough. This might be your application, too. The talk also has some lessons on event synchronization in mostly-offline settings, and conflict management.