Skip to content

Real-Time Change Streams & Reactive Watchers โ€‹

FLASH DB enables building real-time collaboration apps, chat systems, and reactive dashboards via Lock-Free Change Streams (watch()).


Subscribing to Collection Events โ€‹

javascript
import { FlashClient } from 'flash-zk';

const client = new FlashClient({ storagePath: "./flash_data" });
const messages = client.collection('messages');

// 1. Subscribe to all changes (or with a predicate filter)
const watcher = messages.watch({ channel: 'general' });

// 2. Listen to insert events
watcher.on('insert', (event) => {
  console.log('โšก New message arrived:', event.doc.text);
  console.log('Timestamp:', event.timestamp);
});

// 3. Listen to delete events
watcher.on('delete', (event) => {
  console.log('๐Ÿ—‘๏ธ Message deleted with ID:', event.id);
});

// 4. Listen to any change
watcher.on('change', (event) => {
  console.log('Operation:', event.operationType);
});

// To stop watching and clean up listeners
// watcher.close();

Zero-knowledge encrypted intelligence ยท Apache 2.0