Dan Creswell has a nicely done discussion on that whole push/pull thing.
Rather than focus solely on either approach in isolation, I think the best solution is to use a combination. This has a couple of advantages:For some kinds of information, just providing "pull" could be sufficient. For others, "push" may be preferred, but as Dan (and Bill, previously) explained, having that available to be pulled as well pays off.
- Clients can potentially use whichever method is more appropriate for them.
- It provides significant opportunity for fine tuning.
- It provides a nice simple recovery model.
- Responsibility is balanced throughout the system keeping complexity down.