[ https://issues.apache.org/jira/browse/IGNITE-26235?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Roman Puchkovskiy updated IGNITE-26235: --------------------------------------- Description: Currently, there is just one ClusterNode interface in the project. It's located in the public API, but it's also widely used in our internal code. Second use (in our code) requires the ClusterNode to have methods that are useful for our internal needs, but not needed for an API object. Ideally, the latter should be a small DTO only having exactly the attributes it needs for the API. This is already violated: for instance, it exposes node metadata which seems to be too much for the API. The idea is that we introduce another interface (InternalClusterNode) and use it instead of ClusterNode everywhere except for the API. This will allow us to: # extend the internal interface with attributes needed only internally # expose the node metadata in a proper way (TBD) and deprecate current nodeMetadata() method for removal > Separate public ClusterNode from internal ClusterNode > ----------------------------------------------------- > > Key: IGNITE-26235 > URL: https://issues.apache.org/jira/browse/IGNITE-26235 > Project: Ignite > Issue Type: Improvement > Reporter: Roman Puchkovskiy > Assignee: Roman Puchkovskiy > Priority: Major > Labels: ignite-3 > > Currently, there is just one ClusterNode interface in the project. It's > located in the public API, but it's also widely used in our internal code. > Second use (in our code) requires the ClusterNode to have methods that are > useful for our internal needs, but not needed for an API object. Ideally, the > latter should be a small DTO only having exactly the attributes it needs for > the API. This is already violated: for instance, it exposes node metadata > which seems to be too much for the API. > The idea is that we introduce another interface (InternalClusterNode) and use > it instead of ClusterNode everywhere except for the API. This will allow us > to: > # extend the internal interface with attributes needed only internally > # expose the node metadata in a proper way (TBD) and deprecate current > nodeMetadata() method for removal -- This message was sent by Atlassian Jira (v8.20.10#820010)