backpressure can mean different things depending on the context, but in the case of @Model objects, mutating a property does not synchronously cause a recomposition. Mutations are observed in a transaction, and recomposition happens when the transaction commits. When recomposition happens, the tree is traversed again from top-down, with higher up invalidated scopes recomposing before ones further down. Though we haven’t built things at true scale with compose yet, this was designed specifically to prevent some of the typical scalability issues you see with observable UIs