There is a nice option to Dynamic or Manipulate wrapper functions, where one can specify, which of symbols Mathematica should track.
How does it work and what is underneath this TrackedSymbols? Is it possible to implement somewhat like this without frontend? Since Wolfram has an ability to trace the evaluation process using Trace, I am wondering is there any low-level functions, which can work like an interruption (similar to SocketListener)
(*somewhere in the code*)
EventListener["OnChange":>Symbol, callback];
I bet, there is something, but probably undocumented. It should definitely be run on a secondary kernel (which stands for the evaluation).
Moreover, we have a inbuilt debugger, therefore there must be an access to it.