In Chapter 6, Basic Server-Side Development, we saw how to redefine the write() methods of a model to perform actions on record update. Automated actions on record update provide another way to achieve the same, with some benefits and drawbacks.
Among the benefits, it is easy to define an action triggered by the update of a stored computed field, which is tricky to do in pure code. It is also possible to define filters on records and have different rules for different records, or for records matching different conditions that can be expressed with search domains.
However, automated actions can have disadvantages when compared to Python business logic code inside modules. As a concern, with poor planning, this flexibility can rapidly grow into complex interactions, difficult to maintain and debug. Also, the before and after write filter operations bring some overhead, so for performing sensitive actions, this can be an issue.