title: Angular, Central (Redux)'Store' vs Singleton Service, aka "what happened to separation of concerns"?
body: <p>As we're gearing up for our new Angular project, we are evaluating various architectural concepts to employ within our system--especially state management. In the past, there were natural complexities with client components being proactively notified. Today, enter reactive programming and central stores.</p>
  
  <p>I understand the nature of maintaining a 'large' central store with corresponding actions (inside various services), reducers, and subscribers that contains state for the entire app. I also see the benefit of stratifying unit tests with these pure function reducers. The question I have is how does this stack up to the classic notions of 'separation of concerns' and 'single responsibility' where state is maintained for <em>those</em> components via their dedicated services (dependency injected) while a semblance of decoupling is provided as well?</p>
  
  <p>Why use large central stores instead of singleton services that maintain 'contained' state who emit changes to subscribers AND maintain that separation of concerns (eg: customer data is separate from inventory data). Although, there are allusions to this in other parts of SO and the web, I don't see references directly tackling this question. Thoughts comparing these 2 notions (central store state vs dependency injected service/singleton state) and/or references that do is greatly appreciated.  </p>