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

This branch is up to date with mdmuhtasimfuadfahim/rmq-pub-sub:master.

Folders and files

NameName
Last commit message
Last commit date
Jun 2, 2023
Jun 2, 2023
Oct 22, 2023
Jun 2, 2023
Jun 2, 2023
Jun 2, 2023
Jun 2, 2023
Jun 2, 2023
Jun 2, 2023
Jun 2, 2023
Jun 2, 2023
Jun 2, 2023
Oct 22, 2023
May 26, 2023
Oct 22, 2023
Jun 2, 2023
Jun 2, 2023
Jun 2, 2023
Jun 2, 2023
Oct 22, 2023
May 26, 2023

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%