@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.
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:
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: {
},
async factory({ logger }) {
return customEventsService;
},
});
and your custom implementation:
// packages/backend/src/index.ts
+ backend.add(customEventsServiceFactory);