ArcticDB
ArcticDB copied to clipboard
Write docs explaining different abstractions
Is your feature request related to a problem? Please describe. The current higher level code structure is confusing and has potentially too many abstractions:
PythonVersionStore ---has---> Store ---parent-of---> AsyncStore ---has---> Library ---has---> Storage ---parent-of---> Many
|
v
InMemoryStore
Most of the abstractions in this picture don't do more than just directly call methods from the next portion of the hierarchy.
Also I don't think there is a good reason for InMemoryStore
to be a Store
rather than a Storage
.
Describe the solution you'd like
~I suggest a refactor to simplify these abstractions to something like:~
~PythonVersionStore ---> Library ---> Storage ---parent-of---> Many (including InMemory)
~
~Here PythonVersionStore
will be responsible for the translation between Python and c++.~
~Library
will be the main point-of-entry exposing all library operations we expose to users.~
~Storage
will be the common interface over all storage types (S3
, InMemory
, Azure
, etc.).~
Write down decent inline documentation explaining the function of each abstraction at the top of the header file.
Describe alternatives you've considered A clear and concise description of any alternative solutions or features you've considered.
Additional context Add any other context or screenshots about the feature request here.
As discussed with @willdealtry, the various abstractions are meaningful and each has a specific purpose. It is better to have more abstractions with a single purpose than few abstractions with many functions.
Instead we should write up good header docs to explain the function of each abstraction.