A data block is the storage object for a node’s data. It maintains the received and sent data of the node, and is only valid during the execution of a node’s compute function. A pointer to the data block must not be maintained after the compute function exits.
The dependency graph can be a bottleneck when rendering if care is not taken. Since a node can be computed several times per pixel its important that it be as efficient as possible.
It may seem that getting at the data being received or sent by a node is a little complex at first, but this is necessary to provide a fast mechanism.