SPA from a different angle.
Half a year or so ago I attended a developer conference about UI frameworks. All the current players were there, Angular, Backbone, etc. As an enterprise services developer I was free to poke around see what was new and compare notes with the half dozen or so UI developers I worked with who were also attending the conference. None of them felt inspired.
UI technologies seem to be in a state of rapid flux. As much or more so as server side technologies in the early 2000's. Sure Angular 2 is the 800 lb gorilla, today. There are however lots of frameworks, all with their own rabid supporters and seemingly equally rabid detractors. It got me to thinking about what an SPA (Single Page Application) really was and where it could really fit in an architecture. Most of the answers that I got at the conference ignored the pitfalls of SPA and concentrated on usability. In my mind, that's missing the biggest plus of all.
State my friends, client side state. An SPA allows an application to store most or all of it's meaningful state on the browser. I'm not saying it's pain free, but for the first time you can practically write a portable stateful application without a proprietary plugin, (like Flash player.) As a corollary since the client can now hold state, services can be stateless. No more need for a messy session scheme that inhibits scaling. Want another instance of the services, spin one up in your cloud, you know if you have a cloud.
In addition the beauty of SPA is that each time you add a new client, you get a new processor. Sure the client has always done rendering work, but must of the complexity has historically been handled by the server. This no longer needs to be the case. The services tier can be stateless, simpler and cross tech. Think micro services if you are looking for a buzz word.
If you add in an authentication mechanism like OAuth2, you've got a recipe for a massively scalable app, or even ecosystem of them. Authentication tends to be one of the more complicated aspects of app development because it ties to who you are and what you are allowed to access.
This architecture isn't a magic bullet, they don't exist. SPA apps have their downsides to be sure, initial load time being a big one. However, an app that followed the above outlined architecture could be very usable and very scalable.