@hookdeck/pubsub
v0.1.5-alpha
Published
An experimental SDK providing PubSub abstractions for Hookdeck
Downloads
12
Readme
Hookdeck Pub/Sub SDK [ALPHA Experiment]
Hookdeck allows for Pub/Sub-type communication, but the platform primitives differ. This library enables the use of Pub/Sub primitives and mapping them to Hookdeck ones.
Here's a mapping of Pub/Sub conventions to Hookdeck ones:
- Channel: A Hookdeck Source with a unique name where events are published
- Subscription: A Hookdeck Connection consisting of a Source, Rules†, and a Destination. The Destination is where events are delivered to and is the subscriber.
† The current plan is only to support Filter rules.
Contents
Usage
const pubsub = new HookdeckPubSub({
// Hookdeck project API Key
apiKey,
// Used when creating all Sources/channels
publishAuth,
});
// Dynamically creates the Hookdeck Connection
const subscription = channel.subscribe({
channel: "orders",
// Where events published on the channel are sent
url,
// Optional. Used to authenticate the request to the subscribing url.
auth,
});
// Creates a Source on the fly if one does not already exist with given name
const channel = pubsub.channel({
name: "orders",
});
// Performs a POST request to the underlying Source URL
await channel.publish({
channel: "orders",
event: {
type: "order.updated",
data: {
status: "PAYMENT_RECEIVED",
},
},
});
// Get all subscriptions to the "orders" channel
// Note: This current performs a fuzzy match
const subscriptions = await pubsub.getSubscriptions({
name: "orders",
});
// Get all events sent to the subscription
const events = await pubsub.getEvents({ subscriptionId, includeBody: true });
// Get all delivery attempts for an event
const attempts = await pubsub.getDeliveryAttempts({
eventId,
includeBody: true,
});
Todos
- [ ] Set up CI/CD
- [ ] Add support for filters on subscriptions
Contributing
Ask questions and raise issues in the issues section.