Because each event has a position exactly one greater than the previous, an entity projected up to position N can be stored in a cache tagged with that version; the next read pulls version N and resumes from position N+1. For very long streams (e.g. a million events), snapshotting periodically writes a representation of current entity state so a restarted server does not have to re-project from zero. Eventide's entity_store library ships with both a cache and snapshotting built in.