In this pattern, we split a single Entry for the Course into two parts:
- CourseAnchor that is never changed after creation and serves as a reliable address to reference the course it represents;
- CourseData that is storing all the data for the course and is frequently updated. In order to be discoverable, each CourseData has links from CourseAnchor.
I only recently realized that this whole pattern is based on the assumption that we can always easily retrieve the latest link CourseAnchor -> CourseData and thus save on all the lookups from the original CourseData to the latest one.
However, in Holochain we can’t be sure that order in which actions are happening will be preserved, and we’re operating under the assumption that it won’t.
Question: how can we then be sure that we can get the latest link from CourseAnchor -> CourseData if link creation follows all the same data propagation and eventual consistency rules?
If we can’t be sure about that, then we might be simply moving expensive lookups for latest version from the entry itself (looking for latest Course) to the entry links (looking for latest link CouseAnchor -> CourseData).