Skip to content

Overview

When Labox saves a Storable object, it goes through a series of steps to convert the object into a format suitable for storage. This process involves unpacking the object into its constituent parts, serializing those parts, and then storing the serialized data in a backend storage system. At the end of this process, a ManifestRecord is created in the Labox database to preserve metadata about the components used in the process.

flowchart LR
    START:::hidden -- Storable --> U[Unpacker]
    U -- UnpackedValue --> S1[Serializer]
    U -- UnpackedValue --> S2[Serializer]
    U --> S3[...]
    S1 -- SerializedData --> R1[Storage]
    S2 -- SerializedData --> R2[Storage]
    S3 --> R3[...]
    classDef hidden display: none;

To faciliate loading a Storable, the user must provide the ManifestRecord that was created when the Storable object was saved. Labox uses this manifest to find its associated ContentRecords, which point to the serialized data in the storage system. Labox then retrieves the data and the various components (unpackers, serializers, and storages) by their names from a registry to reconstruct the original Storable object.