Sitemap

Member-only story

Backstage Signals: Real-Time Updates Without Polling

The signals plugin brings WebSocket-based push updates to Backstage. Here is what it enables and how to use it.

4 min readJun 17, 2026

--

Backstage Logo © Spotify

TL;DR: The signals plugin (@backstage/plugin-signals, @backstage/plugin-signals-backend) provides a WebSocket channel between Backstage backend plugins and the frontend. Backend plugins publish signals, frontend plugins subscribe to them. No polling needed.

Our pipeline status widget refreshed every 30 seconds. Not because 30 seconds was the right interval, but because polling was the only option and we didn’t want to hammer the Jenkins API any harder. Developers watched deployments happen in other tools and checked Backstage after the fact.

The Backstage signals plugin changes this. Instead of clients polling for updates, the backend pushes messages over WebSockets when something changes. The UI updates immediately.

The Architecture

The signals system has three parts:

  1. A backend plugin that manages WebSocket connections and routes messages
  2. A frontend plugin that maintains the WebSocket connection and exposes a subscription API
  3. An API that lets backend plugins publish signals to…

--

--

Heikki Hellgren
Heikki Hellgren

Written by Heikki Hellgren

Father of two, husband, and Lead Developer @ OP Financial Group. I write about things I like and things I don’t. More info @ https://heikkihellgren.dev