@shirayukikitsune/graphql-kafkajs-subscriptions
Version:
An implementation for the Apollo PubSubEngine using the KafkaJS as backend.
27 lines (26 loc) • 1 kB
TypeScript
/// <reference types="node" />
import { PubSubEngine } from 'graphql-subscriptions';
import { Message } from 'kafkajs';
import { KafkaPubSubConfig } from './kafka-pub-sub-config';
export declare class KafkaPubSub extends PubSubEngine {
private config;
private kafka;
private producer?;
private consumer?;
private subscriptionMap;
private subscriptionRefCount;
private subscriptions;
private idGenerator;
private log?;
constructor(config: KafkaPubSubConfig);
publish(triggerName: string, payload: Message | Buffer | string): Promise<void>;
subscribe(triggerName: string, onMessage: Function, options?: {
fromBeginning?: boolean;
}): Promise<number>;
asyncIterator<T>(triggers: string | string[], options?: Object): AsyncIterator<T>;
unsubscribe(subscriptionId: number): void;
private createProducer;
private createConsumer;
private connectConsumer;
private static subscriptionIdGenerator;
}