ArcticDB icon indicating copy to clipboard operation
ArcticDB copied to clipboard

Write docs explaining different abstractions

Open IvoDD opened this issue 11 months ago • 1 comments

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.

IvoDD avatar Mar 15 '24 14:03 IvoDD

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.

IvoDD avatar Mar 18 '24 12:03 IvoDD