So you can sort-of have your DNA programmed such that messages follow a time-ordered BST (Binary Search Tree) branch (not the whole tree, just a branch, or you may call it a linked-list; https://appliedgo.net/media/balancedtree/BinTreeShapes.png).
So for a simple scenario, the full-parsed-path may look like this:
public_posts.post_xxx(the-entry-hash-of-the-post-you’re-interested-in-reading).messages.msg_xxx(the-entry-hash-of-the-latest-message; if you follow the hash, you’ll find the message “Thank you so much; issue resolved”).msg_xxx(the-previous-post; follow to discover “Try rebooting the system”)… and so on…
It works great for messages, 'cause you’re mostly interested in the latest messages and don’t have to follow a long trail just to read the latest ones. Linking a new post is trivial; only takes a few calls to create_link() and delete_link(). Moreover, it mimics the order in which messenger clients have to call get_previous_message() when the user keeps scrolling up to reach and read some arbitrarily old message.
However, I generally don’t like using the pure-path method in which the full-traversed-path may look like:
Though I prefer the linked-list workaround hack.
Anyways, that’s all I have to add…