Implementing on Node makes a bit more sense than implementing on Cluster even if the difference in code is insignificant.
This means nodeMeta can be private again, and also makes it easier to pass a Node object to the cluster for local meta, instead of a generic byte[] function. For later updating, that node is passed using Update() instead of New().
Splitting into modules will help keep concerns separate, at the cost of a slightly more verbose code.