Let’s discuss Observers.
In Rails 4 they are moving Observer support into a plugin:
I personally am not a huge fan of observers as you end up with swabs of code that gets executed when events happen, and you don’t always know about them. They’re generally in another file than your model, but not always one named after it! (see notification observers observes tons of stuff.)
They also make our tests run slower when executing tons of side effects that we usually don’t care about.
I would like to migrate away from the observer pattern in our code base. I would even like to take it further and suggest that we replace most of our ActiveRecord callback stuff too.
I think it might be a good idea to replace our observers with service classes. When you need the callbacks, you use the service class. When you don’t, just use the model directly. This should speed up our tests as tests of the model in isolation will never bother with the service class thing. The service class will be tested separately.