yral-dapp / hot-or-not-backend-canister

Other
9 stars 6 forks source link

Implement KV-Store for Third party applications on Yral Infra #329

Open ravi-sawlani-yral opened 4 months ago

ravi-sawlani-yral commented 4 months ago

Description

The idea is to provide simple kv-store for other third party apps on IC to consume yral infra by keeping their app stateless and dumping data to individual canisters that are maintained inside yral infra

Diagram

sequenceDiagram
actor Third-Party-App
box purple Yral:
    participant Platform_Orchestrator
    participant Third-Party-Index
    participant Individual_Canister_C1
end
   Third-Party-App->>Platform_Orchestrator: Requests for new Namespace to store data for.
    note over Platform_Orchestrator: creates a new namespace for third party app
    Platform_Orchestrator ->> Third-Party-Index: creates a new third party index canister
    note over Third-Party-Index: This maintains all the canister that are currently used under third party app
    Third-Party-Index --) Platform_Orchestrator: returns canister id
    Platform_Orchestrator --) Third-Party-App: Returns canister id
   Third-Party-App ->>Third-Party-Index: store key-value for U1 principal-id
    note over Third-Party-Index: fetches canister-id for U1 principal
    Third-Party-Index->>Individual_Canister_C1: write key-value pair
    Individual_Canister_C1 --) Third-Party-Index: return the result
    Third-Party-Index --)Third-Party-App: return the result
ravi-sawlani-yral commented 4 months ago

@rosarp-gobazzinga @saikatdas0790 created this issue and added diagram that shows our approach to integrate third-party apps implementation.