# graphql-servicebus-queues

> A GraphQL subscriptions library for Azure Service Bus Queues.

Latest version **1.0.1** (published 2022-11-20) · MIT license · 0 weekly downloads

## Install

```sh
npm install graphql-servicebus-queues
pnpm add graphql-servicebus-queues
yarn add graphql-servicebus-queues
bun add graphql-servicebus-queues
```

## Health

**Score 30/100 (F)** — status: abandoned.

Positive: no vulnerabilities; high maintenance score.

Warnings: low downloads; no types; no esm support.

Negative: abandoned.

## Facts

| | |
|---|---|
| Version | 1.0.1 |
| Published | 2022-11-20 |
| First published | 2022-11-20 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 2 |
| Unpacked size | 8.3 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Tom Davis |
| Maintainers | photomoose |
| Keywords | azure, queues, graphql, servicebus, websockets, subscriptions |

## Links

- npm: https://www.npmjs.com/package/graphql-servicebus-queues
- Repository: https://github.com/photomoose/graphql-servicebus-queues
- Homepage: https://github.com/photomoose/graphql-servicebus-queues#readme
- Issues: https://github.com/photomoose/graphql-servicebus-queues/issues
- npm.io page: https://npm.io/package/graphql-servicebus-queues

## Dependencies (2)

- [@azure/service-bus](https://npm.io/package/@azure/service-bus.md) ^7.7.3
- [graphql-subscriptions](https://npm.io/package/graphql-subscriptions.md) ^2.0.0

## Alternatives

- [@opentelemetry/exporter-zipkin](https://npm.io/package/@opentelemetry/exporter-zipkin.md) — 14.8M weekly downloads
- [pusher-js](https://npm.io/package/pusher-js.md) — 2.0M weekly downloads
- [browserify](https://npm.io/package/browserify.md) — 1.7M weekly downloads
- [sqs-consumer](https://npm.io/package/sqs-consumer.md) — 1.7M weekly downloads
- [@sanity/eventsource](https://npm.io/package/@sanity/eventsource.md) — 930.8K weekly downloads

## Recent versions

- 1.0.1 (latest) — 2022-11-20
- 1.0.0 — 2022-11-20

## README

# graphql-servicebus-queues
A GraphQL subscriptions library for Azure Service Bus Queues - a cheaper alternative to using Service Bus Topic/Subscriptions.

Due to the nature of Service Bus queue clients being competing consumers, only a single instance/replica of a GraphQL API can be used with this library. Running multiple instances may result in messages not reaching the user agents that have subscribed to a particular GraphQL subscription. If multiple instances are required, consider using a library that supports Service Bus Topics/Subscriptions.


[![Build](https://github.com/photomoose/graphql-servicebus-queues/actions/workflows/build.yaml/badge.svg)](https://github.com/photomoose/graphql-servicebus-queues/actions/workflows/build.yaml)

[![npm version](https://badge.fury.io/js/graphql-servicebus-queues.svg)](https://badge.fury.io/js/graphql-servicebus-queues)

## Usage

```ts
const serviceBusQueue = new ServiceBusQueue({
  queueName: '[QUEUE NAME]',
  connectionString: '[CONNECTION STRING]',
  eventNameKey: '[MESSAGE PROPERTY NAME]',
});

const resolvers = {
  Subscription: {
    telemetry: {
       subscribe: () => ({
          [Symbol.asyncIterator]: () => serviceBusQueue.asyncIterator(['[EVENT NAME]']),
       }),
    }
  }
}
```

| Property | Description                                                 |
|----------|-------------------------------------------------------------|
 |queueName| The name of the Service Bus queue to receive messages from. |
| connectionString| The Service Bus connection string to connect to the queue.|
|eventNameKey| The name of the Service Bus message property whose value indicates the event type of the message. Messages are delivered to a GraphQL subscription if the value of the message property matches the event label provided in the GraphQL subscription resolver (i.e. if value of the message property named`MESSAGE PROPERTY NAME` equals `EVENT NAME`). 

## Detach Forced Error

Depending on message activity, the following error message may occur if no messages have been received from Service Bus over a period of time. This is normal behaviour and can be safely ignored. See the Service Bus [documentation](https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-amqp-troubleshoot#link-is-closed) for more details.

```
amqp:link:detach-forced:The link 'G2:7223832:user.tenant0.cud_00000000000-0000-0000-0000-00000000000000' is force detached by the broker due to errors occurred in publisher(link164614). Detach origin: AmqpMessagePublisher.IdleTimerExpired: Idle timeout: 00:10:00. TrackingId:00000000000000000000000000000000000000_G2_B3, SystemTracker:mynamespace:Topic:MyTopic, Timestamp:2/16/2018 11:10:40 PM
```

---
_Source: https://npm.io/package/graphql-servicebus-queues · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
