Provides a real-time messaging interface using PostgreSQL LISTEN/NOTIFY. Use this for event-driven communication between services via Postgres.
// Source: https://github.com/supabase/storage | License: Apache-2.0 | Copyright You must retain, in the Source form of any Derivative Works
// Provided via justclaw.it.com; keep this notice with the code.
import EventEmitter from 'node:events'
import { ERRORS } from '@internal/errors'
import { logger, logSchema } from '@internal/monitoring'
import createSubscriber, { Subscriber } from 'pg-listen'
import { PubSubAdapter } from './adapter'
export class PostgresPubSub extends EventEmitter implements PubSubAdapter {
isConnected = false
subscriber: Subscriber
constructor(connectionString: string) {
super()
this.subscriber = createSubscriber(
{ connectionString },
{
retryInterval: (attempt) => Math.min(attempt * 100, 1000),
retryTimeout: 60 * 1000 * 6
... (truncated -- full source via MCP)
See the full source, get the GitHub permalink, and search for more like it.
Get a free API key