Divvent

For Divvent’s own team. It is generated from the operations document in our repository, which is the one to edit. If you use Divvent, the help centre is for you.

6m. Splitting a partitioned application's data

The whole of it — for customers and for us — is docs/PARTITIONING.md. What an operator does, in order:

  1. **A partition-split-due finding appears (Findings, and Fleet → Filling up names the database) when one of an application's databases passes 60%. If it says the model is not ready to be split**, the next step is a model change — a partition root — proposed and approved like any other.
  2. Plan it, where the command signing key is — never as an argument:
    $env:DIVVENT_COMMAND_SIGNING_KEY = '<staging''s key>'
    node packages/cli/bin/divvent.mjs partition plan <applicationId> --reason "home at 64%" --env staging
  1. Approve it in the console: Fleet → Splits → Approve this split. It is approved of the plan's hash; a plan that changed is refused.
  2. Nothing else by hand. deploys.yml's Run approved splits step makes and binds the new database (a redeploy you will see on the Deploys queue), rehearses the split on a copy, and runs it — across as many passes as it takes. Progress is on Fleet → Splits.
  3. If a pass says a move was left in flight and could not be rolled back, finish it by hand: divvent partition rollback <applicationId> --reason "..." (or commit, for a move that has flipped). Deploys of that application are refused until you do.