of
The gateways of datasets, each created for its dataset, now and whenever one joins or changes; a dataset that is unavailable gets one that answers every query with why. requireServable refuses a dataset no gateway can be made for (no backend serves its binding, say) before it joins. A gateway is created once the change is applied, so it reads the schema of the declaration it serves: build this after the Catalog that follows the same datasets.
The gateways of datasets, each over the backend bindings gives and the schema catalog compiles for it (a Catalog built over the same datasets and bindings, see QueryBackendStorages); a dataset bindings do not serve is refused before it joins. Each dataset's queries run under the bulkhead it gives, none by default.