I have been programming for years using Angular and Rxjs, and have always done sibling-to-sibling communication using Subjects from within a service. ie. Emitting and subscribing directly onto a Behavior/Replay/Subject
Someone in my team recently pointed out that on the Angular docs, they use a different approach: https://angular.io/guide/component-interaction#parent-and-children-communicate-using-a-service
They declare the Subjects as private, and then only expose them in an observable form.
Is there any good reason why I should move over to this approach instead? Does it have any actual functional/behavioral difference, or is it just a coding best-practise?
I'm trying to wrap my head around whether this would have an impact on the actual functionality in any scenario, due to Subjects being multicasted and Observables not. Could someone perhaps shed light on that?
If I implement this way of doing it, and have multiple children subscribed to the observable (instead of a subject), and the parent emits a value to the subject, will all of the children get the new value, as if it was a multicasted Subject?