two-hundred / celerity

The backend toolkit that gets you moving fast
https://celerityframework.com
Apache License 2.0
0 stars 0 forks source link

Blueprint Framework - Implement behaviour to derive a chain of links from a loaded blueprint #4

Closed fr3shw3b closed 1 year ago

fr3shw3b commented 1 year ago

Implement SpecLinkInfo interface and default implementation that produces a "ChainLink" from a blueprint that has been loaded. This should identify circular dependencies, producing errors and warnings when hard cycles are identified.

There are two types of links for resources.

Hard links - These are links that in which the priority resource type is a hard dependency for the other resource in the relationship. (e.g. Infrastructure-level link from DynamoDB Table to DynamoDB Stream)

Soft links - These are links in which the priority resource type is not a hard dependency for the other resource in the relationship. (e.g. Application-level link from Lambda to DynamoDB)

The implementation of transforming a blueprint into a chain of links needs to take this into account. The hard link and soft link distinction must be well documented!

fr3shw3b commented 1 year ago

Need to document the distinction between hard and soft links! (Celerity docs site and in accompanying documentation in the repo)