How to sync the FULL config between server and client side state

Ok, I am back from the drawing table.
The fog has a little bit cleared in my head.

Although I have limited my drawing to only the data streams in the dashboard, unfortunately it contains much more arrows as I had hoped. But I really need to see everything that is going on behind the scenes, in order to understand how it works. And all those arrows are in fact the reason why I had to draw it, in order to support my brain to understand how it works...

Here is a (large) printscreen:

And here is the corresponding drawing file, in case anybody wants to open it (in https://excalidraw.com/). Note that I had to change the extension from .excalidraw to .txt because it was rejected by Discourse: node_red_dashboard_3.txt (413.9 KB)

My questions and proposals are all in red. I would appreciate if somebody could take the time to review it, in order to make this a useful diagram for UI node developers and dashboard contributors.

When looking at this diagram, it is unfortunately still not clear to me why we need a datastore to store messages (which are replayed afterwards) while the statestore already does a good job to store the state. The datastores and related message replaying makes the development pretty complex to understand.

Hopefully my feedback isn't interpreted as negative, because dashboard D2 has become a piece of art in a small amount of time. And I am still a big fan of it! But imho the message-based approach does really increase the threshold to start contributing.

Thanks for reading!!!
Bart