File tree Expand file tree Collapse file tree 1 file changed +8
-6
lines changed
Expand file tree Collapse file tree 1 file changed +8
-6
lines changed Original file line number Diff line number Diff line change 103103//! * Each activation of the reconciler accepts no input. That is, even when we
104104//! think we know what changed, we do not use that information. This ensures
105105//! that the reconciler really is idempotent and its actions are based solely
106- //! on the state that it's watching. Put differently: having reconcilers
107- //! accept an explicit hint about what changed (and then doing something
108- //! differently based on that) bifurcates the code: there's the common case
109- //! where that hint is available and the rarely-exercised case when it's not
110- //! (e.g., because Nexus crashed and it's the subsequent periodic activation
111- //! that's propagating this change). This is what we're trying to avoid.
106+ //! on the state that it's watching. If the background task accepted input to
107+ //! determine what to do, then it would separately have to handle two cases
108+ //! where that input isn't available: (1) after a Nexus restart, and (2) when
109+ //! there's more than one Nexus and the input is only seen in one of the Nexus
110+ //! instances. Thus, having reconcilers accept an explicit hint about what
111+ //! changed (and then doing something differently based on that) bifurcates
112+ //! the code: there's the common case where that hint is available and the
113+ //! rarely-exercised case when it's not. This is what we're trying to avoid.
112114//! * We do allow reconcilers to be triggered by a `tokio::sync::watch` channel
113115//! -- but again, not using the _data_ from that channel. There are two big
114116//! advantages here: (1) reduced latency from when a change is made to when
You can’t perform that action at this time.
0 commit comments