# Notes We need three major components to work together. I would love it if the node-store and the runtime are super loosely coupled so that they could be replaced by at will. So for example i could use the “server-runtime” that executes the node-graph on the server, or the “local” runtime that executes the node-graph locally. ## [[Projects/bachelor/NODE_INTERFACE]] This is where the user interacts with the node graph. The frontend loads a node-system. Then fetches all the relevant nodes from the `NODE_REGISTRY`. ## [[Projects/bachelor/NODE_REGISTRY]] The `NODE_REGISTRY` stores all the nodes. For each node it stores a definition and the wasm blob that executes that node. ## [[Projects/bachelor/RUNTIME_EXECUTOR]] The runtime gets a node-graph and returns the result after executing the node-graph. It fetches the relevant nodes from the `NODE_REGISTRY`. This is how these three components would communicate ![](OVERVIEW_SEQUENCE.png)