zarr-developers / zarr-specs

Zarr core protocol for storage and retrieval of N-dimensional typed arrays
https://zarr-specs.readthedocs.io/
Creative Commons Attribution 4.0 International
88 stars 28 forks source link

Abstract store interface should be clarified as descriptive, not normative #307

Open jhamman opened 3 months ago

jhamman commented 3 months ago

I would like to understand why the spec includes a Abstract store interface section and ask if this section should be clarified as descriptive, not normative.

Why should the spec care what interface and implementation chooses for the Store abstraction? So long as the store does the right thing, surely the implementation is free to choose a different abstract interface?

d-v-b commented 3 months ago

the normativity of that section also stood out to me. I don't know why we need normativity here; in fact, it's probably healthy to allow different implementations to use whatever internal APIs seem appropriate. If there is a "right way" to implement zarr, then it can probably only be discovered empirically (and I doubt there is a "right way").

dcherian commented 3 months ago

FWIW the wording is strong:

For a store to be compatible with this specification, it must support a set of operations defined in the Abstract store interface subsection.

jbms commented 3 months ago

Agreed that this is not intended to specify the actual API in any implementation.