vulcain-corejs
Version:
Vulcain micro-service framework
51 lines (50 loc) • 1.47 kB
TypeScript
import { EventData, ActionData } from '../pipeline/actions';
import { IActionBusAdapter, IEventBusAdapter } from '../bus/busAdapter';
export declare class RabbitAdapter implements IActionBusAdapter, IEventBusAdapter {
private address;
private domainHandlers;
private channel;
private initialized;
constructor(address: string);
startAsync(): Promise<{}>;
/**
* Send domain event (event raises by an action)
* Domain events are shared by all services of any domains
*
* @param {string} domain
* @param {EventData} event
*
* @memberOf RabbitAdapter
*/
sendEvent(domain: string, event: EventData): void;
/**
* Listening for domain events
*
* @param {string} domain
* @param {Function} handler
*
* @memberOf RabbitAdapter
*/
consumeEvents(domain: string, handler: Function): void;
/**
* Task = asynchronous action
* Shared by service instances
*
* @param {string} domain
* @param {string} serviceId
* @param {ActionData} command
*
* @memberOf RabbitAdapter
*/
publishTask(domain: string, serviceId: string, command: ActionData): void;
/**
* Listening for asynchronous task
*
* @param {string} domain
* @param {string} serviceId
* @param {Function} handler
*
* @memberOf RabbitAdapter
*/
consumeTask(domain: string, serviceId: string, handler: Function): void;
}