EOObserver
EOObserving and EODelayedObserver
These protocols provide a synchronous and an asynchronous interface to observing object changes. This is very similiar to Key-Value Observing introduced in Mac OS X 10.3.
A category on NSObject implements the willChange method, which in turn calls the [EOObserverCenter notifyObserversObjectWillChange:] message. Objects may register with the EOObserverCenter to become immediately notified of this.
With EODelayedObserver and EODelayedObserverQueue objects can queue state changes like this and have them delivered at a later time.
In a typical EOF scenario, the willChange is immediately propagated to the EOEditingContext that object resides in. The EOEditingContext registers this as an update to the object and saves undo information. Later in the runloop the information, which objects have changed is sent to the EODisplayGroups.
Read: How changes in EOEnterpriseObjects propagate to -[EOAssociation subjectChanged] for a detailed control flow explanation.