[ 
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)

Reply via email to