Storage engines should be moved to a "list of services" configuration like cluster.databases, cluster.mailers, etc. This would support:
- Reordering storage engines.
- Making engines read-only (for migrating away from an older engine).
- Fallback on write failure.
- Support for writing multiple copies of a file to different engines for HA?
- Then, fallback on read failure.
If we allow multiple copies of a file's data, File should change to point into some kind of DataRef table by hash. This is a more involved change than the other changes.