# 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:** 3\
**Page:** 1

<div class="post-metadata">

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

</div>

It most probably has to do with the roon protocol standart but can anyone clarify that if using Roon with a Node 2i as endpoint if Roon pushes the data to the Node or if it instructs the Node to pull the data?

Thanks

---

<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

---

<div class="post-metadata">

**Author:** ![Lynn\_Sorenson](https://community.roonlabs.com/letter_avatar/lynn_sorenson/32/5_5575768a8748004e209b776fc1b2916d.png) [@Lynn\_Sorenson](https://community.roonlabs.com/u/Lynn_Sorenson)\
**Post date:** [April 14, 2020, 5:59pm UTC](https://community.roonlabs.com/t/roon-push-or-pull/101970/3 "2020-04-14T17:59:25Z")

</div>

Hi thank you for your answer

as I understood it, what happens is roon creates a command layer above the device’s OS/FW, this layer does not interfere with signal’s path.

when a device is roon ready is means it adheres to a command language that makes it compatible with the roon layer (I’m probably oversimplifying it…)
