@burnout-zero/bqs
v1.2.25
Published
Burnout-Zero Queue Service
Downloads
107
Readme
BQS (BOZ Queue service)
BQS is a comprehensive TypeScript-based library designed to streamline the integration and management of messaging systems within JavaScript and TypeScript applications. With its focus on providing a robust, scalable, and easy-to-use set of clients for queue management and publish/subscribe patterns, BQS offers developers a unified approach to handling asynchronous messaging workflows.
Features
- Queue Client: Specialized for queue-based messaging, it supports message queuing, retrieval, and processing, with features like message acknowledgment, delayed delivery, and priority queuing.
- Pub/Sub Client: Facilitates a publish/subscribe messaging model, allowing for event-driven architectures and real-time messaging with pattern-based subscriptions and message filtering.
Installation
To harness the power of BQS in your project, simply install it via npm:
npm install @burnout-zero/bqs
Usage
BQS is designed for simplicity. Below are quick start guides for each client.
Queue Client
import { QueueClient } from '@burnout-zero/bqs'
const connectionString = 'amqp://localhost' // Use your own MQ broker connection here
const client = new QueueClient(connectionString);
await client.connect();
await client.send('hello', { message: 'Hello, World!' });
await client.receive('hello', (payload) => {
console.log(payload)
});
PubSub Client
import { PubsubClient } from '@burnout-zero/bqs'
const connectionString = 'amqp://localhost' // Use your own MQ broker connection here
const client = new PubsubClient(connectionString);
await client.connect();
await client.publish('logs', 'error.critical', { message: 'This is a critical error' });
await client.subscribe('logs', '*.critical', (key: string, payload: string) => {
console.log(key)
console.log(payload)
});
Custom Client
You can use Custom Client to create your own implementation
import { CustomClient } from '@burnout-zero/bqs'
export default class MyOwnImplementation extends CustomClient {
async send(params){
// Implement your own sending logic
}
async receive(params){
// Implement your own subscriber logic
}
}