Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Parsec

Parsec is a scalable realtime messaging engine built on Centrifuge (OSS). It ships as a Go library (primary), a CLI binary, and a Twirp JSON RPC service — three surfaces over the same engine.

This book is the reference manual. Start with the quickstart, or skip to the section that matches your role:

Capability map

NeedRead
Try parsec in 30 secondsRunning with Docker
Wire a browser to parsecBrowser client
Test code that embeds parsecparsectest helpers
Open a channel, publish, subscribeQuickstart
Understand the namespace grammarChannel naming
Token-gate a channel with patternsACL scopes
Rotate signing keys without downtimeKey rotation
Accept IdP-issued bearersOIDC bridge
Survive sink outagesDLQ
Gate abusive callersRate limiting
Cluster across machinesDeployment
Span regionsMulti-region
Speak HTTP/3WebTransport
Compress chatty channelsDelta compression
Embed the operator UIAdmin UI
Scrape metricsObservability

What Parsec is

  • A broker process that holds long-lived client connections (WebSocket + optional WebTransport).
  • A channel manager with a strict public:/private: namespace convention and TTL-driven lifecycle.
  • A library you embed in Go services to publish, subscribe, and authenticate.
  • A CLI and a Twirp RPC surface — two ways to control the same engine from outside.

What Parsec is not

  • Not an everything-store. It does not own your business data; it ships events.
  • Not a durable work queue. Use one for jobs; use parsec for “you have a notification”.
  • Not a Centrifugo Pro replacement. Parsec uses the OSS library; we ship our own delta-compression toggle, admin UI, and presence primitives — only the subset we need.