I just want to confirm that my following understanding of RDM / OMM / ADH / ADS caching is correct.
I have always understood that for complex RDM models the ADH can handle caching of Updates to a single FieldEntry no matter how deep in the nested hierarchy.
For example with the YieldCurve model below, the provider publishes an Update (for an existing YC record) which contains a single FID 30200. The Payload being a Vector with a single Vector Entry x with an Action flag of Update. The payload of this Vector Entry x being a single FID 30202.
The ADH (on receipt of the above update) would modify its cached value of the YC Record to update FID 30202 for that one single Vector Entry x, leaving all the other fields for Vector Entry x intact and also all other vector entries intact.
When a consumer then requests a Refresh for the YC record he receives the latest image (which includes the latest value for FID 30202 for Vector Entry x).
Is the above understanding correct? OR would the provider have to publish for example the complete set of fields again for Vector Entry x?
If my above understanding is correct, can I also assume the same applies for custom OMM models? E.g. For a Custom OMM Model containing a FID with a Payload of a Vector and each VectorEntry contained a payload of a nested Vector with each VectorEntry containing a FieldList (as shown below)
My understanding is that the Provider can publish (for an existing Matrix record) an Update for just one single FID -1003 in the above nested FieldList (for a single nested VectorEntry) and the ADH cache will handle this correctly and update the one single FID, leaving all other FIDs and VectorEntries intact. Obviously, the payload for the Update message would need to contain a FID -1001 with a single VectorEntry (with the appropriate Position and Action="" which itself contained a single nested VectorEntry (with the correct Position & Action="" with a payload of a FieldList containing FID-1003.
Can someone please confirm my above understanding is correct or flawed ?
Yield Curve referenced in question:
Vector referenced in question:
The understanding is correct. Provider just has to publish what is changed and just the field entries that have updated within vector x. It does not need to republish entire vectors due to nesting.