@ryanbillingsley I have an update on this. I had the privilege to chat with one of the yapp guys at an ember NYC meetup. He mentioned that they use service to encapsulate their server interactions and they put them in various places not just the router. This has the benefit of keeping your server code grouped in a way thats decoupled from any particular route or component.
I haven’t had enough time to play with this idea yet to appraise if fully but I think if you want a more distributed architecture where components are more intelligent, then you could use services since you can inject a service into a component. But if you prefer a more hierarchical architecture then the router style works quite well. I’ve played with both architectural styles in other languages and both are useful in different situations.
As to implementing the more server stuff in the router, @Emerson and @opsb may have done this in a different way but my version was sending actions up the stack ie component -> controller -> router and then doing the actual server interaction in the router. Then the data change propagates back via the observed properties.