title: At what level of abstraction does Single Responsibility Principle (SRP) no longer make sense?
body: <p>I'm getting push back on a design from a colleague, and am wondering if there's consensus as to who is correct on application of SRP in this case.</p>
  
  <p>I see SRP as relating mostly to the lower-level details of design, such as class responsibility.  As you move up in levels of abstraction I believe SRP is still relevant but that the definition of what a single responsibility necessarily also moves toward a higher level of abstraction.</p>
  
  <p>In my specific case, a service that "processes foos, stores their results, and provides access to those results" in my mind has the single responsibility of a "foo handling subsystem", however a colleague disagrees and sees this as 2-3 separate responsibilities.  My case is that if you always break down single responsibilities to minute detail then having a "bank" is a violation of SRP since it "holds money, maintains accounts, sells mortgages, ...".</p>