@burnout-zero/bqs

1.2.4 • Public • Published

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
    }
}

Readme

Keywords

none

Package Sidebar

Install

npm i @burnout-zero/bqs

Weekly Downloads

18

Version

1.2.4

License

ISC

Unpacked Size

25.3 kB

Total Files

16

Last publish

Collaborators

  • burnout-zero