Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

I just noticed that I missed the core of your question, because I thought it was explained in the article:
We have node players that take the data of a node and do something with it. For example the dialog node player takes  the text and the character stored in the dialog node data and spawns a speech bubble with the text.

The players are called as a coroutine by a big loop. 

Quick Pseudo code:

IEnumerator PlayQuest (stratNodeData) {

var nextNodeData = startNodeData;

while (nextNodeData != null){

      var nodePlayer = GetNodePlayerByNodeDataType (nextNodeData);

     yield return nodePlaye.PlayNode(nextNodeData);

     nextNodeData = nodePlayer.GetNextNode(nextNodeData); // returns null if nothing is connected

}

}

I see, thank you ! I've implemented a quest system myself but it's list based instead of graph based because I was too scared to do editor graph stuff. It kinda works for now but it definitely needs a graph implementation if I'm gonna use it in a bigger project. My implementation is that every quest node is a SO , with a "current state" enum. It also contains references to its own subquests and next quests (which are also the same type of quest node SO). Scene game objects can easily get a reference to the node SO and act accordingly based on the desired state (I mostly just enable/disable game objects ). I will keep your implementation in mind when I eventually tear it all down and build it up again. 

I totally understand that building a new graph system is scary and a big time investment. There are also some assetstore/git packages that do similar things to our system you could check out.
In case you have any more questions on our approach, just ask away.