question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

catalog model: support additional System relations

See original GitHub issue

Feature Suggestion

I would like support for additional relations on the System entity.

Possible Implementation

On the System entity there could be a spec.consumesApis or spec.dependsOn relation defined explicitly.

Alternatively, a visibility could be declared on an API entity and then we wouldn’t have to declare the system then we could derive the public APIs from the sub-components that are part of the system. This would mean that all API relations would be inferred through a component.

Context

The docs say

With increasing complexity in software, systems form an important abstraction level to help us reason about software ecosystems.

Part of understanding those systems is understanding its boundaries. That is covered in part by an API that is part of a system but a critical part of that is surfacing the APIs that system depends on.

Issue Analytics

  • State:open
  • Created 2 years ago
  • Reactions:4
  • Comments:20 (14 by maintainers)

github_iconTop GitHub Comments

1reaction
martina-ifcommented, Nov 8, 2022

Bump! I’d love to see this rollup feature as well. It can make the graphs even more useful because you can explore the architecture diagram in “layers” going from high level to deeper details. We have a couple of adopters asking for this 😁

1reaction
jcarres-mdsolcommented, Jan 24, 2022

I’m going to leave here a comment carried over from https://github.com/backstage/backstage/issues/9014

To me the most natural behavior for system is to roll up the information from the components in the system.

According to Backstage docs, A system, in this sense, is a collection of resources and components that exposes one or several public APIs. And unless we want to re-declare APIs, those are going to be defined already in lower level components. So to keep single source of truth we should be able to expose them. Additionally we may want to consider the behavior of providesApi/apiProvidedBy does it override or does it augment, etc. But I think an MVP is the rollup behavior, then further extensions can be designed and implemented later as use-cases emerge.

Read more comments on GitHub >

github_iconTop Results From Across the Web

How to model software in Backstage - Roadie.io
Backstage's service catalog serves as a metadata store for useful ... We'll also see how Backstage models the relationships between software ...
Read more >
System Model: Inter-System (and inter-domain) relationships ...
The system model in Backstage catalog does have part-of relationship for Components with the System. but the Systems themselves do not have ...
Read more >
Descriptor Format of Catalog Entities - Backstage.io
Documentation on Descriptor Format of Catalog Entities which describes the default data ... production owner: artist-relations-team system: public-websites.
Read more >
The Higher Education IT Service Catalog Model | EDUCAUSE
The IT service catalog model. Services live in a single category; however, some services might be cross-referenced in other categories via ...
Read more >
7 data modeling techniques and concepts for business By
The model might also contain additional data about the customer, product, ... database or file structures that will be used in a system....
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found