Skip to content

Switchboard

Centrifugo gateway and message recorder

A unified gateway fronting Centrifugo with REST publish/subscribe, message recording, and operational dashboards.

  • Docker container
  • Kubernetes Helm chart
  • 10 database engines
  • 2 queue backends
  • 7 notification drivers
  • 1 cache engine
  • 4 languages (EN, FR, ES, PT)
  • REST API + OpenAPI 3.0.3
  • Realtime WebSocket channels
  • Atlas schema migrations
Switchboard screenshot

Switchboard provides a single entry point to Centrifugo — REST API for publish, subscribe, history, presence, and generic commands. All protected by shared secret. Asynchronous message recording persists traffic to SQL/NoSQL backends. Dashboards and event logs for real-time visibility. Perfect for teams building chat, notifications, and real-time features atop Centrifugo.

Switchboard
What it does

Key features

Proxy pass-through for Centrifugo HTTP and WebSocket routes

Shared-secret REST: publish, subscribe, unsubscribe, disconnect, history, presence, command

Asynchronous message recording to Postgres, MySQL, SQLite, SQL Server, Mongo, or Redis

Scope routing: all channels, specific channels, groups, namespaces

Real-time runtime dashboards and event logs

WebSocket auth and channel management

Svelte 5 / Tailwind 4 dark UI with instant language switch

Switchboard
Why it's different

Where it goes beyond the obvious

Unified gateway for Centrifugo with a built-in REST API bridge

Asynchronous recording with flexible routing scopes

Tech highlights

  • Centrifugo proxy with REST bridge
  • Recording: Postgres, MySQL, SQLite, SQL Server, Mongo, Redis
  • Queue transport: Redis or in-memory fallback

Built on

Centrifugo v6 (proxied)GinGORMwebpush-goapns2AWS SDK v2

REST API surface

  • GET /v1/runtime Metrics over API key auth
  • GET /v1/channels Active channels with subscriber counts
  • POST /v1/channels/:channel/publish Publish to one channel
  • POST /v1/channels/publish-all Broadcast
  • GET /v1/channels/:channel/history Retrieve history
  • GET /v1/channels/:channel/presence Users present
  • PUT /v1/settings/recording Update recording scope
  • POST /v1/commands/:command Generic Centrifugo command

Full spec at GET /openapi — Swagger UI at /swagger/

Your infrastructure

Backends you can actually pick from.

This service speaks the backends below natively. Swap with a single environment variable.

Databases

  • PostgreSQL
  • MySQL
  • SQLite
  • SQL Server
  • Oracle
  • MongoDB
  • Redis
  • Valkey
  • DynamoDB
  • Cassandra

Queues

  • Redis
  • In-memory fallback

Cache

  • Redis

Notifications

  • Slack
  • Discord
  • Teams
  • FCM
  • APNs
  • SNS
  • WebPush
Where it fits

Use cases

Chat platforms recording messages for audit and compliance

Notification services managing multi-channel subscriptions

Real-time collaboration archiving activity logs

Gaming platforms broadcasting player events

IoT dashboards managing live sensor subscriptions

vs Realtime messaging and pub/sub

Switchboard vs Pusher, Ably, PubNub

Realtime messaging without Pusher or PubNub invoices

Compare head-to-head
Patterns

Architecture patterns featuring this service

Same family

More in messaging

Ready when you are

Deploy Switchboard. Today.

One Docker image. One compose stack. One afternoon to production. Switchboard is waiting.