# Roon Push or Pull

**URL:** <https://community.roonlabs.com/t/roon-push-or-pull/101970>\
**Category:** BluOS: NAD & Bluesound\
**Created:** [April 14, 2020, 4:06pm UTC](https://community.roonlabs.com/t/roon-push-or-pull/101970 "2020-04-14T16:06:15Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![john](https://community.roonlabs.com/letter_avatar/john/32/5_5575768a8748004e209b776fc1b2916d.png) [@john](https://community.roonlabs.com/u/john)\
**Post date:** [April 14, 2020, 4:12pm UTC](https://community.roonlabs.com/t/roon-push-or-pull/101970/2 "2020-04-14T16:12:04Z")

</div>

Hello @Lynn_Sorenson,

I’ve attached two posts from our CTO describing how Roon RAAT streaming works:

> [@RAAT and clock ownership](https://community.roonlabs.com/t/raat-and-clock-ownership/6915/6):
>
> A RAAT streamer never adds an source of clocking discrepancy. Instead of thinking of the streamer as an extension of the device, think of RAAT as an extension of Roon that gives Roon a presence on the streamer. The reason for this: Stacking multiple layers that pull data from each other does not create new clock sources so long as the data flow is controlled by the last layer in the stack. RAAT does insert an extra layer (or 5, see below) of “pulling”, but there are many other layers of “pul…

> [@RAAT and clock ownership](https://community.roonlabs.com/t/raat-and-clock-ownership/6915/12):
>
> Agreed about S/PDIF. I have guesses as to why they “got it wrong”, but I don’t know for sure. Roon/RAAT are based on a pull model. I’m not sure where my explanation went wrong to cause confusion. (Meridian’s streaming protocol is also a pull model). For multi-zone, we run in pull mode with the zone that has been elected as clock master and push to the other zones, which are forced to compensate for drift internally. The actual implementation is slightly indirect. The core knows how quickly t…

-John

---

_[View the full topic](https://community.roonlabs.com/t/roon-push-or-pull/101970)._
