On Fri, Jan 19, 2018 at 11:06 AM, benravin <ben.alex@outlook.com> wrote:

just to expand on that a bit. you can build a push model API on top of a
pull model API fairly easily; the other way around is hard.

On a push model on top of pull,  pull will overwrite if push is slow, how to
determine how much buffering is required. Any guideline.

​You can't know ahead of time. You need to know the behaviour of your non-realtime-safe data sources  (e.g. disks). ​

For reference, in the case of Ardour, we buffer 5 seconds of audio per track by default. This is enough in most cases, but not all; in some cases, it is way more than  necessary.