- So the data flow of RIBs architecture is basically from top to bottom. So does that mean all the data stream that child RIBs needs, need to be prepared/ready ahead of time at the Root RIBs? If yes, which means all the APIs/networking calls/database operations are all happened within the Root RIBs?
- If the Root RIBs stores the whole app state, are all those streams being initialized at the boot time? Can I lazy initialize part of them as some of them are not required if that particular child RIBs is not being attached to the tree yet?
- Referring to this article from Uber engineering blog https://eng.uber.com/deep-scope-hierarchies/
New Rider App: Deep Scope Hierarchy
Given that two and three level scope hierarchies have major problems, we did not limit ourselves to a set number of scope layers when we were developing the new app. Instead, we created new intermediary scope layers wherever useful. For example, the PreRequest scope is used to store objects that need to be shared by all PreRequest screen states such as Home, ProductSelection, and RefinementSteps.
Are there any criteria, what kind of object/state or when should we use the intermediary scope layers
approach, but not creating a DI stream at Root and feed the child Ribs as a dependency?
What should we concern? Does that require API call? Not business logic related states, like UI logics?
The use case that comes up in my mind is maybe the registration section of an app.
We may need to create an intermediary scope layer
to store the information that user filled in (up until the user hit the register/finish button). If the user clicks the register button, that the user object will be sent back to the parent RIBs via listener? Correct?