Component dependencies are a core concept of distributed architectures, and I really like how Compass natively supports component dependencies so that other features can be build atop the resulting dependency graph (e.g. announcements, as further discussed in Notifications for announcements).
I'm struggling a bit how to model external dependencies though, i.e. those that are not the engineering output of your own teams?
As an example, we (Utoolity) are building AWS integrations for the Atlassian platform, which requires us to closely track the API/SPI/SDK evolution of two major platforms, besides all the usual software dependencies on external libraries for an app's business logic etc.:
- Now, in theory all those dependencies might still boil down to some kind of software artifact that could be tracked via a repository and Compass component in turn (e.g. the various AWS SDKs, the Atlassian OpenAPI and GraphQL types, the npm packages).
- However, in practice that's rarely manageable and developers rely on community announcements, release notes, and changelogs instead, i.e. an ever changing information stream of varying granularity.
So while 2 strongly suggests that each team needs to curate their tailored stream of changes anyway, I'm finding myself right in the middle between the Compass dependencies and announcements capabilities and am curious about your thoughts in this regard?