Skip to content

Latest commit

 

History

History

javascript

README.md

Quickstart: Publish/Subscribe (JavaScript)

In this quickstart, you'll run a publisher and subscriber application on Catalyst Cloud. You will learn how to:

  • Provision a Catalyst project with a managed message broker using the Diagrid CLI.
  • Publish messages to a topic and receive them in a subscriber application using the Dapr Pub/Sub API.
  • Inspect published messages in the Catalyst web console.
---
title: Publisher and Subscriber Apps connected to Catalyst via Pub/Sub
---
flowchart LR
  APP1(Publisher App)
  subgraph Catalyst
    APPID1(ID: publisher)
    BROKER@{ shape: das, label: "Message broker" }
    APPID2(ID: subscriber)
  end
  APP2(Subscriber App)
  APP1-->APPID1
  APPID1-.->BROKER
  BROKER-.->APPID2
  APPID2-->APP2
Loading

1. Prerequisites

Before you proceed, ensure you have the following prerequisites installed.

2. Log in to Catalyst

Authenticate to Diagrid Catalyst using the following command:

diagrid login

This command opens a new browser window where you'll be shown a confirmation code that should match the code in your terminal. Confirm the code, and if you're not logged into Catalyst, you'll be redirected to login.

Confirm your user details are correct using the following command:

diagrid whoami

The expected output contains the name of the organization, your user name, and the Catalyst API endpoint.

3. Clone Quickstart Code

Clone the quickstart code from GitHub:

git clone https://github.com/diagridio/catalyst-quickstarts

Navigate to the quickstart directory:

macOS/Linux:

cd catalyst-quickstarts/pubsub/javascript

Windows:

cd catalyst-quickstarts\pubsub\javascript

4. Install Dependencies

Install the dependencies for both the publisher and subscriber applications.

npm install --prefix ./publisher && npm install --prefix ./subscriber

5. Run the application with Catalyst Cloud

The diagrid dev run command creates your Catalyst project, provisions resources (apps, Diagrid Pub/Sub service and topic), configures environment variables, and launches your application connected to Catalyst Cloud.

diagrid dev run -f pubsub-quickstart.yaml --project pubsub-quickstart --approve

Tip: Wait a few seconds until you see the logs Connected App ID "publisher" to http://localhost:5001 and Connected App ID "subscriber" to http://localhost:5002 in the terminal before proceeding, to ensure both applications are up and running.

6. Publish and receive a message

With the quickstart running, test the Pub/Sub API by publishing a message and verifying it was received by the subscriber.

6.1 Publish a message

Open a new terminal and publish an order message to the orders topic:

macOS/Linux (curl):

curl -i -X POST http://localhost:5001/order -H "Content-Type: application/json" -d '{"orderId":1}'

Windows (PowerShell):

Invoke-RestMethod -Method Post -Uri "http://localhost:5001/order" -ContentType "application/json" -Body '{"orderId":1}'

Any OS (VS Code REST Client): open test.rest and click Send Request above the request. Requires the REST Client extension.

The expected response is 201 Created with this body:

{"id":1,"message":"Message published successfully","topic":"orders"}

In the diagrid dev run terminal, the publisher app logs should indicate a message was successfully published, and the subscriber app logs should show the message was received on its /neworder route.

6.2 View in the Catalyst web console

Open the Catalyst Cloud web console and navigate to the Pub/Sub topic explorer (Resources > Managed Pub/Sub). When the Pending Message Count for the orders topic reaches 0, the subscriber app has successfully processed all messages.

7. Clean Up

Press CTRL+C in the terminal that runs diagrid dev run to stop the application and disconnect from Catalyst Cloud.

To delete the entire project and all provisioned resources:

diagrid project delete pubsub-quickstart

Summary

In this quickstart you:

  • Logged in to Catalyst and provisioned a managed Pub/Sub project with a single CLI command (diagrid dev run).
  • Published a message to a topic and verified it was received by a subscriber application.
  • Inspected message delivery status using the Catalyst Pub/Sub topic explorer.

Catalyst handled message brokering, topic management, and delivery guarantees automatically — no infrastructure to manage.

Next steps