If one decomposes the business logic into multiple blocs then how would you communicate between…
Ernest Micklei

Yes, the canonical way at Google is to plug the streams to the parent Bloc instead of having a direct reference.

In other ways, you subscribe the parent to streams of its children that it’s interested in. If a child is interested in a stream of a sibling, it needs to go to the parent.

I want to underline that it’s easy to go overboard with this pattern. If at any point your Bloc structure seems to be overly complicated (given the app you’re building), simplify. For example, sometimes you don’t need to split a piece of business logic into two separate blocs.