Handlers must be able to control the projection (for caching, snapshotting, or to skip it entirely) and the writer (to apply expected-version selectively, deal with external side-effects correctly, and test via substitute writers that never touch the database). Hiding these dependencies behind framework magic is an anti-pattern; controlling dependencies is also fundamental good software practice that gems like VCR and global database mocks have eroded.