-
Notifications
You must be signed in to change notification settings - Fork 54
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
docs: Proposal for a TargetNodeDirectory in Tractus-X. #1556
Closed
bmg13
wants to merge
9
commits into
eclipse-tractusx:main
from
bmg13:dr_tx_target_node_directory_proposal
Closed
Changes from 7 commits
Commits
Show all changes
9 commits
Select commit
Hold shift + click to select a range
54f9c70
Doc: Proposal for a TargetNodeDirectory in Tractus-X.
bmg13 7876f93
Restructure based on PR.
bmg13 fae5e8b
Changes from PR.
bmg13 c71ba15
Small doc improvements
bmg13 e402116
Small doc improvements
bmg13 c232c04
doc: comparison of tnd with default approach.
bmg13 a9cdd06
Changes from PR.
bmg13 25c4783
Changes from PR.
bmg13 e033a5a
Small doc improvements
bmg13 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
32 changes: 32 additions & 0 deletions
32
...lopment/decision-records/2024-09-16-tx-target-node-directory-proposal/README.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
# Proposal for a TargetNodeDirectory in Tractus-X | ||
|
||
## Decision | ||
|
||
A new service that will contain Connectors' URL's of each partner a member wants the offers from, acting as the **TargetNodeDirectory for the partner's FederatedCatalog**. | ||
|
||
|
||
## Rationale | ||
|
||
While considering new interventions in the Federated Catalog, this decision aims to set the TargetNodeDirectory. | ||
From the [documentation](https://github.com/eclipse-edc/FederatedCatalog/blob/e733355c6991ff633ee009bd5f35ced61e941da6/docs/developer/architecture/federated-catalog.architecture.md) | ||
> The Federated Catalog requires a list of Target Catalog Nodes, so it knows which endpoints to crawl. This list is provided by the TargetNodeDirectory. During the preparation of a crawl run, the ExecutionManager queries that directory and obtains the list of TCNs. | ||
|
||
To address this, the goal is the creation of an independent service responsible for exposing an API, retrieving and storing Connectors' URL's that a certain partner chooses. This new service would be called TargetNodeDirectoryService and the user will be able to host it. | ||
|
||
Users will input the Connectors' URL's of the connectors they want the catalogs from, through the API of the TargetNodeDirectoryService | ||
|
||
This solution allows the member to choose precisely the Target Catalog Nodes that interests them, resulting in reduced network calls and latency. Additionally, each member has control on how to host and manage this new service. Service changes do not affect other parties (unless contract changes) and it can be scaled independently. | ||
|
||
Other solution was also considered | ||
|
||
- File in a S3 bucket (or different cloud provider's solution) | ||
- This solution was discarded due to one file for all instead of each partner having the data that respectively needs does not match the requirement and this solution would lock the usage of a proprietary tool (cloud provider) being harder to sustain in the long run. | ||
|
||
## Approach | ||
|
||
The user is able to obtain the Connectors' URL's (through the Discovery Service, as an example) and store them in the new service through its API. The API will allow to save a list of Connectors' URL's in bulk and the service is responsible to store that (in memory or in database). These can later be retrieved and crawled by the Federated Catalog. | ||
This solution improves on the default one of having the data in a static file since a dynamic approach would avoid downtime when a change is required. | ||
|
||
Finally, considering service deployment, a new chart can be created just for this new service (similar to the existing ones), being its usage only decided by the member. As so, a Dockerfile should exist to ease this approach (giving the user option of running it in a container or run a simple `jar`). | ||
|
||
Limitations of this solution are that each partner must have the Connectors' URL's beforehand and deal with the overhead of a new service, specially one with a persistence store. |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is this operation meant to be done manually?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, with the goal of the removing the Discovery Service dependency from this TargetNodeDirectoryService the responsibility of obtaining and saving the the Connectors' URL's lies with the user, as sugggested here.