Architectural Flow of Angular 2 app
<p>I am working on an Angular2 application. My App is either used to create a new post or edit an already created post. It has two pages.</p>

<p>First Page, Is just a normal form with all basic Info and second page has multiple components which will talk to each other i.e. each component is in a way interlinked to each other and need to talk to each other. And these components are dynamic depending on type.</p>

<p><strong>My Question is: How should I architect the flow of the application so that it fits both create and edit scenarios.<br/><br/>
The Way I am thinking of right now is,</strong> </p>

<p>Each component has a service(make them injectable) which will hold the data and I have to create observers for all those services and subscribe to those in other components so they will act depending upon changes in service.</p>

<p><strong>Other way is:</strong></p>

<p>I created a common emitter service which will return emit objects, I can call that component and emit an event which other components listen to.</p>

<p><strong>Which way would be a good way of dealing with this kind of scenarios, and help in the long run? Also, Should help in a way so that I can later add few more components seamlessly?</strong></p>

<p>Thanks</p>