Best Practices

1) I'm ok with this, as long as we call delay only on mailers.
2) You can always instantiate POROs directly in the background class, no need to serialize it. IMHO this point is more about not serializing complex objects because serialization comes with problems.

I'd also like to open another very important case. Right now when the number of DJs increases by a lot (indexing, log hitting, etc.) we severely damage production and people are not able to do their jobs. Are we planning to fix this issue with Delayed Job or have we already done something about it? Because if not I think we should work on migrating to a different queue that can 1) process jobs 10x times faster 2) doesn't have the job queue on the main db.