Talk:Advanced Update Model

Johan Stuyts
Requirements that I want to add:
 * The update driver cannot make assumptions about the timestamps. The management of timestamps depends on the type of application. In GUIs the timestamp is increased if changes to primary data are made in an iteration of the application loop. For software build systems the timestamps are derived from the timestamps of the input source files and previously compiled output files.
 * The contract between update drivers and operations must be clearly defined, so different update drivers (single threaded, multithreaded, distributed) and different operation implementations (in-memory, file-based) can be mixed.

The following features are present in my latest prototype, and I need them in a new version of the update model:
 * Feedbacks. If the user inputs invalid data in one of the representations, the other representations should use the latest valid value from further down the processing graph. This creates cycles which are not allowed, but the value from further down the graph is not treated the same as a normal source to prevent infinite loops.
 * Short circuiting. An operation may be able to generate its result using only a subset of its sources depending on the value of those sources. So an operation must be able to tell the update driver to stop updating further sources if the previous source delivered a value that can be used to determine the final result. For example: conditional boolean operators in C++/Java.