ViewsDriver
The view store's part of the rehearsal (driver views …), against the 9.x view store the example-server embeds or the V10 view store service:
driver views seed --base=<9.x url> --book=<file> --settings=<file> --views=N [--tenants=T] [--users=U]
driver views traffic --version=9x|v10 --base=<url> --book=<file> --seconds=S [--touched=<file>] [--create=K]
driver views await --base=<v10 url> --touched=<file> [--timeout=S]
driver views states --version=9x|v10 --base=<url> --book=<file> --out=<file> [--sample=N]
driver views verify --base=<9.x url> --touched=<file>
driver views settings --version=9x|v10 --base=<url> --settings=<file>seedcreates N views in 9.x, each taken through what its index draws: saved, renamed, shared (its owner becomes(shared)) and claimed by another user (a 9.xViewAudienceChanged, an owner transfer), or deleted; each user's preferences for a definition; each tenant's wording of three datasets, one of them cleared again.trafficrenames personal views for S seconds; with--create, it creates K views instead (on V10 aViewCreatedat revision 2, which 9.x cannot read), and nothing else.awaitwaits until V10 holds every touched view at its version;statesreads every N-th view that is not deleted, its version and its state without what one version derives (id, V10'skind), fordriver compare. 9.x is read from its snapshots, the only state its view store serves. 9.x saves one after each command and acknowledges the command's state event whether the save succeeds or not, so a save that fails (a MongoDB connection reset, say) is dropped, and the view's snapshot stays at the version before until its next command: 9.x's events still hold the version, and loading the view reads them. So a 9.x view whose snapshot is older than its booked version is read again for a while; one that stays older is printedSTALEand left out of the file, listed under$stalewith its snapshot's version and its booked one, andcompareleaves it out on both sides and counts it. The migration's own check of that snapshot ismigrate-data compare's, at the snapshot's version.verifyrenames, in 9.x after the rollback, every view V10 touched, and checks that 9.x applies it on the version V10 left: 9.x reads what export wrote back.settingssets again every booked preferences and every wording not cleared, and checks that each lands on the version after the booked one: on V10 after the cut-over, that its derived ids find what was imported (an id derived otherwise starts an empty aggregate at version 1); on 9.x after the rollback, that 9.x reads what export wrote back.