The concept of tracking data is actually quite simple — when you define some object property as observable it is replaced with a getter &amp; setter that invoke a callback when you get&#x2F;set that property. Then you can bind a function that will be called when data is changed (via setter).<p>You can also wrap some code into special autorun function, that will track what observable data was accessed, and when that data changes, that code will be called again.<p>But wait, there&#x27;s more =) It works with arrays, objects and other types, check out the docs!