Skip to content

A packages that enables applications to publish, consume records of streams which is based on RabbitMQ Pub-Sub functionality.

License

Notifications You must be signed in to change notification settings

xs-fahim/rmq-pub-sub

 
 

Repository files navigation

Gitpod

rmq-pub-sub

rmq-pub-sub is designed based on the RabbitMQ Pub-Sub functionality. A easier way to call a function named RMQPubStream to Produce any stream and consume by RMQSubStream.

Table Of Contents

Installation

$ npm i rmq-pub-sub

or

$ yarn add rmq-pub-sub

Example

This example shows you how to create microservice and add pub-sub to communicate between services by rmq-pub-sub.

Project Structure

project-structure

Note: Create NodeJS environment in both service-1 and service-2 and create server using your favourite NodeJS framework.

service-1/server.js

const RMQPubStream = require('rmq-pub-sub/RMQPubStream');

app.post('/send', async (req, res) => {
    const fakeData = {
        Name: "Md. Muhtasim Fuad Fahim",
        Email: "mdmuhtasim.fahim@gmail.com",
    };

    const produce = await RMQPubStream("FAKE_DATA", fakeData);
    console.log("Producer: ", produce);
    return res.status(200).send("Done!");
});

service-2/server.js

const RMQSubStream = require('rmq-pub-sub/RMQSubStream');

(async function rmqData() {
    await RMQSubStream("FAKE_DATA").then((data) => {
        console.log("CONSUME: ", data);
    });
})();

service-1/.env & service-2/.env

AMQP_URL = "amqp://localhost"

Pull RabbitMQ docker image by the following command

docker run --name rabbitmq -p 5672:5672 rabbitmq

Now run the both services in your machine and hit the API: http://localhost:${PORT}/send 🥳

How To Contribute

  • Fork it 😎
  • Create a feature branch: git checkout -b my-feature
  • Add your changes: git add .
  • Commit your changes: git commit -m 'My new feature'
  • Push to the branch: git push origin my-feature
  • Submit a pull request

Contributions, issues and features requests are welcome!
📮 Submit PRs to help solve issues or add features
🐛 Find and report issues
🌟 Star the project

Test

  • Fork it 😎
  • Clone forked repository: git clone https://github.com/username/forked-name.git
  • Install the dependencies from root directory: npm install
  • Rename .env.example to .env
  • Now run: npm run test or npm run test:watch or npm run coverage & see the results 🥳

Changelog

See CHANGELOG.md.

Project Activity

Alt

License

rmq-pub-sub is licensed by MIT License.

Contact

Copyright © 2023 Md. Muhtasim Fuad Fahim

About

A packages that enables applications to publish, consume records of streams which is based on RabbitMQ Pub-Sub functionality.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 99.1%
  • Shell 0.9%