Skip to main content

Data Flow

Complete Data Flow Example: Creating a Keychain Entry

Data Synchronization

The World Tree panel and Metaverse panel share the same SQLite database, synchronized via events:

// Broadcast after data change
mainWindow.webContents.send('data-changed', { module: 'keychain' })
metaverseWindow.webContents.send('data-changed', { module: 'keychain' })

// Renderer process listens
ipcRenderer.on('data-changed', (_, { module }) => {
invalidateCache(module)
refreshUI(module)
})

Caching Strategy

LayerCacheInvalidation
World Tree PanelcachedItemsManual invalidateCache() after operations
Metaverse PanelwtKeychainCacheManual invalidateWtKeychainCache() after operations
DatabaseSequelize query cacheAuto-invalidated after transaction commit