[
https://issues.apache.org/jira/browse/IGNITE-26235?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Roman Puchkovskiy updated IGNITE-26235:
---------------------------------------
Component/s: network ai3
> Separate public ClusterNode from internal ClusterNode
> -----------------------------------------------------
>
> Key: IGNITE-26235
> URL: https://issues.apache.org/jira/browse/IGNITE-26235
> Project: Ignite
> Issue Type: Improvement
> Components: network ai3
> 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)