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();