@syntropylog/adapters
Version:
External adapters for SyntropyLog framework
44 lines (39 loc) • 1.57 kB
TypeScript
import { Kafka } from 'kafkajs';
import { IBrokerAdapter, BrokerMessage, MessageHandler } from '@syntropylog/types';
declare class KafkaAdapter implements IBrokerAdapter {
private readonly producer;
private readonly consumer;
constructor(kafkaInstance: Kafka, groupId: string);
connect(): Promise<void>;
disconnect(): Promise<void>;
publish(topic: string, message: BrokerMessage): Promise<void>;
subscribe(topic: string, handler: MessageHandler): Promise<void>;
}
declare class RabbitMQAdapter implements IBrokerAdapter {
private connection;
private channel;
private connectionString;
private exchangeName;
private consumerTags;
constructor(connectionString: string, exchangeName?: string);
connect(): Promise<void>;
disconnect(): Promise<void>;
publish(topic: string, message: BrokerMessage): Promise<void>;
subscribe(topic: string, handler: MessageHandler): Promise<void>;
unsubscribe(topic: string): Promise<void>;
}
declare class NatsAdapter implements IBrokerAdapter {
private readonly natsServers;
private natsConnection;
private codec;
private subscriptions;
constructor(natsServers?: string[]);
connect(): Promise<void>;
disconnect(): Promise<void>;
publish(topic: string, message: BrokerMessage): Promise<void>;
subscribe(topic: string, handler: MessageHandler): Promise<void>;
unsubscribe(topic: string): Promise<void>;
private natsHeadersToRecord;
private recordToNatsHeaders;
}
export { KafkaAdapter, NatsAdapter, RabbitMQAdapter };