Introduction of new phantom Noun Bloblet for purpose of high level API that wraps blobless blobentry for storage of small data. This is a more formal counterpart to the informal metadata field. Convenience phantom noun Bloblet (high level API) will use blobless Blobentry (as low level key=>value) to achieve non-poweruser CRUD/ACID for "bloblet" (aka small data). Note the following bloblet mechanizations:
- Somewhere is a node where the non-poweruser wants to do CRUD on various key=> value bloblets,
- The bloblets are stored via blobless blobentries on that node,
- the blobentry indicates it's bloblessness via
blobId=0000000-0000-0000-0000-000000000000,
- the key is stored in the
blobentry.label
- the value is stored in the
blobentry.metadata -- i.e. data is stored in the graph, not in the heavy lift blobstores. Limited to what http can do, and requires more engineering beyond a few Mb when multipart http requests etc happen (if at all).
- a type boosting is possible by using
blobentry.mimetype to overwrite the jsonable fallback metadata type ::Dict{Symbol,String},
- e.g. during development someone wants to store a yaml config via the
bloblet convenience, then the raw yaml can be stored in the blobless entry, as long as the mimetype specifies the correct type .mimetype=application/yaml
Originally posted by @dehann in #1105