@cbnsndwch/zero-sources

zero-watermark-nats-kv

NATS KV distributed watermark storage for Zero Sources

NATS KV-based watermark storage implementation for distributed deployments.

Overview

The zero-watermark-nats-kv library provides a distributed watermark storage solution using NATS Key-Value store. Ideal for multi-instance, high-availability deployments.

Key Features

  • Distributed: Share state across multiple instances
  • High Availability: Built-in replication
  • Fast: In-memory with persistence
  • Scalable: Handle millions of clients
  • Real-time: Instant propagation

Installation

pnpm add @cbnsndwch/zero-watermark-nats-kv

Quick Start

import { NATSWatermarkStorage } from '@cbnsndwch/zero-watermark-nats-kv';

const storage = new NATSWatermarkStorage({
    servers: ['nats://localhost:4222'],
    bucket: 'zero-watermarks'
});

await storage.init();

// Store watermark
await storage.setWatermark('client-123', 'table-1', '1234567890');

// Retrieve watermark
const watermark = await storage.getWatermark('client-123', 'table-1');

Configuration

const storage = new NATSWatermarkStorage({
    servers: ['nats://nats1:4222', 'nats://nats2:4222'], // NATS servers
    bucket: 'zero-watermarks', // KV bucket name
    replicas: 3, // Replication factor
    ttl: 7 * 24 * 60 * 60 * 1000 // 7 days
});

Use Cases

  • Production: Multi-instance production deployments
  • High Availability: Mission-critical applications
  • Geographic Distribution: Multi-region deployments
  • Microservices: Service mesh architectures

Comparison with ZQLite

FeatureZQLiteNATS KV
DeploymentSingle instanceMulti-instance
AvailabilityLocalDistributed
ScalabilityLimitedHigh
ComplexitySimpleModerate

How was this page?