backstage / backstage

Backstage is an open framework for building developer portals
https://backstage.io/
Apache License 2.0
27.91k stars 5.88k forks source link

Introduction of Service Modules in the New Backend System #24547

Closed camilaibs closed 2 months ago

camilaibs commented 5 months ago

Context

Refs: https://github.com/backstage/backstage/issues/24493

In the Backstage framework, backend services are system-wide building blocks that all plugins and modules rely on. They are currently not possible to augment through declarative integration, only being customizable through complete replacement. This is both cumbersome to adopters and limits our ability to modularize and scale ownership in OSS.

Description

We want to solve this, and provide the base building blocks to build for example the ability to “install support for Bitbucket” without requiring changes to code.

Currently it’s only possible to install modules that extend plugins with new functionality, such as a new scaffolder actions or catalog processors. If you want to customize any of the core services that the Backstage framework provides you need to replace the entire services, for example when additional SCM integrations, or custom log formatters.

Service modules enable customization of services without the need to rewire the entire thing or write any code.

Acceptance criteria

vinzscam commented 5 months ago

POC branch: https://github.com/backstage/backstage/compare/vinzscam/service-modules-poc

github-actions[bot] commented 3 months ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

camilaibs commented 2 months ago

Here is another branch trying a multiple service factories approach: https://github.com/backstage/backstage/compare/mob/nbs10-service-modules?expand=1 cc/ @Rugvip