This is about sharing problems.
Observers allow you to act out code that really does not apply to models. For example, the User model may have a callback that sends an email confirming registration after saving the user record, but you really do not want this code to be in the model because it is not directly related to the purpose of the model.
Observers allow you to have such a clean separation because you don't have all of this callback code in your models. Observers depend on the model (or models), and not vice versa.
John topley
source share