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
| Layer | Cache | Invalidation |
|---|---|---|
| World Tree Panel | cachedItems | Manual invalidateCache() after operations |
| Metaverse Panel | wtKeychainCache | Manual invalidateWtKeychainCache() after operations |
| Database | Sequelize query cache | Auto-invalidated after transaction commit |