github.com/voedger/voedger@v0.0.0-20240520144910-273e84102129/pkg/istorage/provider/README.md (about)

     1  ### TODO
     2  - SafeAppName uniquity is gauranted for SE only. Need to implement another angorythm to get SafeAppName in Entrprise Edition
     3  
     4  ```mermaid
     5  flowchart TD
     6    istorageimpl[istorageimpl]:::S
     7    driver[driver]:::S
     8    IAppStorageFactory([IAppStorageFactory]):::S
     9    IAppStorageProvider([IAppStorageProvider]):::S
    10    IAppStorage([IAppStorage]):::S
    11    AppQName([AppQName]):::H
    12    AppStorageDesc([AppStorageDesc]):::S
    13    pending[pending]:::H
    14    done[done]:::H
    15    sysmeta[(sysmeta)]:::H
    16    storage[(storage)]:::H
    17    Init([Init]):::S
    18    AppStorageQ([AppStorage]):::S
    19    AppStorageS([AppStorage]):::S
    20    ASStatus([Status]):::S
    21    SafeAppName([SafeAppName]):::S
    22    NewSafeAppName([NewSafeAppName]):::S
    23    ASError([Error]):::S
    24  
    25    classDef G fill:#FFFFFF,stroke:#000000, stroke-width:1px, stroke-dasharray: 5 5
    26    classDef B fill:#FFFFB5,color:#333
    27    classDef S fill:#B5FFFF
    28    classDef H fill:#C9E7B7
    29  
    30    driver --- |provides| IAppStorageFactory
    31    IAppStorageFactory --- |has| Init
    32    IAppStorageFactory --- |has| AppStorageS
    33    IAppStorage -.provides connection to existing.- storage
    34    AppStorageS -.returns new.- IAppStorage
    35    Init -. creates new .- storage
    36    istorageimpl --- |provides| IAppStorageProvider
    37    IAppStorageProvider --- |has| AppStorageQ
    38    AppStorageQ -.caches and returns.- IAppStorage
    39    sysmeta -.is.- storage
    40  
    41    AppStorageDesc -.persisted by stringified.- AppQName
    42    AppQName -.in.- sysmeta
    43    AppStorageDesc --- |has| ASStatus
    44    ASStatus -.is initially.- pending
    45    pending -.before.- Init
    46    ASStatus -.could be.- done
    47    done -.is set after success.- Init
    48    AppStorageDesc --- |has| SafeAppName
    49    SafeAppName -.is name of.- storage
    50    SafeAppName -.created by.- NewSafeAppName
    51    NewSafeAppName -.checks uniquity in.- sysmeta
    52    SafeAppName -.persisted in.- sysmeta
    53    ASError --- |is field of| AppStorageDesc
    54    AppStorageQ -.reads or creates new.- AppStorageDesc
    55    ASError -.returned by.- Init
    56    AppStorageQ -.could return.- ASError
    57  ```