How could I check that the field's value has indeed been modified?
Using hook_entity_presave():


  You can get the original entity object from $entity->original when it is an update of the entity.


So something like this ought to work:

function foo_node_presave(\Drupal\node\NodeInterface $node) {
  if (!$node-&gt;isNew() &amp;&amp; $node-&gt;get('field_bar')-&gt;getValue() != $node-&gt;original-&gt;get('field_bar')-&gt;getValue()) {
    // ...
  }
}