@veridot/kafka
v2.2.1
Published
Kafka implementation module for Veridot - Provides Kafka-based metadata broker
Maintainers
Readme
@veridot/kafka
Kafka implementation for Veridot metadata broker.
Installation
npm install @veridot/kafka @veridot/coreUsage
import { KafkaMetadataBroker } from '@veridot/kafka';
import { GenericSignerVerifier, BasicConfigurer, TokenMode } from '@veridot/core';
// Create Kafka broker
const broker = await KafkaMetadataBroker.of({
clientId: 'my-service',
brokers: ['localhost:9092'],
topic: 'veridot_keys',
dbPath: './data/veridot-keys',
});
// Create signer/verifier
const signer = new GenericSignerVerifier(broker, process.env.APP_SALT!);
// Sign a token
const config = new BasicConfigurer()
.mode(TokenMode.JWT)
.validity(30, 'minutes');
const token = await signer.sign({ userId: 123, role: 'admin' }, config);
// Verify token (in another service)
const payload = await signer.verify(token, (data) => JSON.parse(data));
console.log('User:', payload.userId); // 123
// Cleanup
await signer.shutdown();
await broker.disconnect();Configuration
Environment variables:
VDOT_KAFKA_BOOTSTRAP_SERVERS: Kafka broker addresses (default:localhost:9092)VDOT_TOKEN_VERIFIER_TOPIC: Kafka topic name (default:veridot_keys)VDOT_EMBEDDED_DATABASE_PATH: LMDB database path (default:./veridot-keys)
Features
- Distributed: Public keys propagated via Kafka to all services
- Cached: Keys stored locally in LMDB for fast retrieval
- Persistent: LMDB ensures keys survive service restarts
- Scalable: Kafka handles high-throughput key distribution
License
MIT © Darlin TEUMA
