Files
backstage/plugins/events-node
dependabot[bot] de96a60f7a chore(deps): bump express from 4.21.2 to 4.22.0
Bumps [express](https://github.com/expressjs/express) from 4.21.2 to 4.22.0.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/4.22.0/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.21.2...4.22.0)

---
updated-dependencies:
- dependency-name: express
  dependency-version: 4.22.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-02 20:33:46 +01:00
..
2025-11-25 16:21:32 +00:00

@backstage/plugin-events-node

This package defined basic types for event-based interactions inside of Backstage.

Additionally, it provides the core event service eventsServiceRef of type EventsService with its default implementation that uses the DefaultEventsService implementation.

DefaultEventsService is a simple in-memory implementation that requires the co-deployment of producers and consumers of events.

Installation

Add @backstage/plugin-events-node as dependency to your plugin or plugin module package to which you want to add event support.

Use eventsServiceRef as a dependency at your plugin or plugin module.

Legacy Backend System

Create an EventsService instance and add it to the environment.

// packages/backend/src/plugins/events.ts
import { DefaultEventsService } from '@backstage/plugin-events-node';

// ...

function makeCreateEnv(config: Config) {
  // ...
  const eventsService = DefaultEventsService.create({ logger: root, config });
  // ...
  return (plugin: string): PluginEnvironment => {
    // ...
    return {
      // ...
      events: eventsService,
      // ...
    };
  };
}

Use the events from the PluginEnvironment as desired:

// packages/backend/src/plugins/events.ts
export default async function createPlugin(
  env: PluginEnvironment,
): Promise<Router> {
  // ...
  env.events; // ...
  // ...
}

Use Case

Exchange service implementation

Create your custom service factory implementation:

import { eventsServiceRef } from '@backstage/plugin-events-node';
// ...
export const customEventsServiceFactory = createServiceFactory({
  service: eventsServiceRef,
  deps: {
    // add needed dependencies here
  },
  async factory({ logger }) {
    // add your custom logic here
    return customEventsService;
  },
});

and your custom implementation:

// packages/backend/src/index.ts
+  backend.add(customEventsServiceFactory);