Skip to content

[Feature] Bloblet phantom Noun, a convenience high level API (wrap blobless blobentry for CRUD/ACID small data) #1174

@dehann

Description

@dehann

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

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions