Jarl wrote: > ic. Why does Overflow use pulling? Nodes pushing data into the next seems > more logical > to me at first. Jean-Marc wrote: > It's just that the pull is so much cleaner and easier to implement for more > complex processing. Jarl, I was thinking the same way as you when I first starting thinking about the pull stuff. I am probably simple minded, but the first way I think to move through a data structure or anything is from the front, using a push type system like you are describing, ie. 1. Calculate some data. 2. Pass the data on to the outputs. 3. Repeat until there are no more outputs to push the data on to. 4. Collect the results from the final outputs However, I've been using the pull type system for stuff in the dl, and it is really clean and easy to use, as Jean-Marc mentioned. Using the pull scheme really falls naturally into some very nice recursion ie. (example in python, sorry!): def __main__(): the_nodes_that_need_results calculate_data(the_nodes_that_need_results) def calculate_data(node_to_calculate): all_input_data = list(()) for input_node in node_to_calculate.all_input_nodes: input_data = calculate_data(input_node) all_input_data.append(input_data) return node_to_calculate.do_calculation(all_input_data) It took me a while to get into this, since I'm slow in the head, but I really like this way of doing things. It makes traversing a big old crazy graph structure really easy. Just my 2 cents. Thanks for writing on this. Brad