Storage

  • Entities(entity_id) -> (entity_metadata)

    • An entity can have multiple buckets associated with it.

  • Buckets(entity_id, bucket_id) -> (bucket_metadata)

    • Sets of bucket_ids associated to the entity_id

    • Double map for efficient lookup

    • Allows finding all buckets for an entity by iterating over partial key

    • Holds bucket metadata

  • Contributors(bucket_id, identity) -> ()

    • Set of accounts who are allowed to write in the bucket

    • Double map for efficient lookup

  • Tags(bucket_id, tag_value)-> ()

    • Set of tags in the associated to the bucket_id

  • Admins(bucket_id, identity) -> ()

    • Set of accounts who are allowed to rotate keys in the bucket

    • Double map for efficient lookups

  • Manager(entity_id, identity) -> ()

    • Set of accounts with administrative privileges

    • Double map for efficient lookup

  • Messages(bucket_id, message_id) -> (message data)

    • Message record containing reference to storage layer and metadata

    • Double map allows finding all messages for a bucket

  • NextBucketId(bucket_id)

    • Saves the next bucket id.

Last updated