npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

test-reactivejs

v1.0.0

Published

To understand and explain how to use MicroJs - we will use an example, in this example we will provide a full (e2e) implementation that will use both *one-way* and *two-way* communication by emulation of services.

Readme

e2e Example

To understand and explain how to use MicroJs - we will use an example, in this example we will provide a full (e2e) implementation that will use both one-way and two-way communication by emulation of services.

For the purpose of example, let's take two microservices ClientService, OrderService. each service has different domain that he manage and they should communicate with each other to complete the mission of shifting client order.

  • ClientService - A service the interacts with the client and giving him (you :) ) two options - place order OR get user orders.

  • OrderService - A service that handles the orders domain, for this example it uses in-memory cache to store the items and to provide results.

To run this example you first need to run the docker-compose file under the example folder - the compose file contains Zookeeper, Kafka and Redis containers - all the things that needed to get MicroJs working:

docker-compose up -d

Under the example folder there are two env files that contains the mandatory variables.

KAFKA_SERVICE_NAME={Service Name}
KAFKA_GROUP={Service Group}
KAFKA_BROKER=localhost:29093

After having the containers up & running - it's recommended to open the example folder on different VSCode instance - it will be easy to debug and run.

Install the package via npm/yarn

npm i https://github.com/benmizrahi/microjs.git

After having that let's run typescript transpiler to get the JS files ready to run.

tsc 

Now were ready to run the example - each service is a different process - you can launch them via VSCode run section. The client-service will pop a new terminal that allows you to communicate with it.

What operation to do ? [ORDER,GET]

Let's explore the communication pattern on each select:

  1. ORDER -

    • the client service uses publishAsync to produce a new message on the order domain with the submitted action.
    • The order service received the message from via @ActionReact adds the message params to in-memory cache and finish his job.
  2. GET

    • The client service populates a get action on the orders domain via publishAsync and waits from response
    • The order service receives the get action and get's the user orders and returns the message need to be resolve by the client request.
    • The client service gets the respond message and displays it on screen.

This example shows how to make an e2e usage of the event bus and running one-way | two way communication.

For question/requests/help please open PR or open an issues.