sequenceDiagram
    participant UI
    participant proxy as Reverse Proxy
    participant ms as Microservice
    participant denormalize as Python Denormalize Function
    participant dbhandler as Python DB Abstraction Function
    participant arango as Arango
    participant nft as nft.storage
    UI->>proxy: Retrieve Component Version
    proxy->>ms: Retrieve Component Version

    activate dbhandler
    ms->>dbhandler: Search Type + Name
    dbhandler->>arango: Search Type + Name
    arango-->>dbhandler: Return Denormalized JSON
    alt full JSON found
        dbhandler->>ms: Return Denormalized JSON
    else full JSON not found
        dbhandler->>nft: Get full Denormalized JSON from IPFS
        nft-->>dbhandler: Return Denormalized JSON
        dbhandler-->>arango: Add Denormalized JSON for caching
        dbhandler-->>ms: Return Denormalized JSON
    end
    ms->>denormalize: Denormalize JSON
    denormalize-->>ms: ""
    deactivate dbhandler

    ms->>proxy: Return Denormalize JSON
    proxy->>UI: Return Denormalize JSON