Re:Scaling Pinterest - From 0 to 10s of Billions of Page Vie...
by aaronbrethorst on Tuesday April 16, 2013 @02:56AM
(#5556665)
I'm no expert, but hopefully by abstracting out different services from your core app and making them available through some connection protocol (Thrift, a message queue, http, whatever) you can more easily scale up and scale out systems that become hotspots, and consumers of that service will never be any the wiser, since they only interact with it through the published API.
Looking at it another way, when I talk to the GitHub API, I have no idea what sort of database I'm ultimately talking to. Their interface abstracts away all of that complexity. Each request they receive from me might be handled by a different machine for all I know. It makes no difference.
Re:Scaling Pinterest - From 0 to 10s of Billions of Page Vie...
by bloodredsun on Tuesday April 16, 2013 @04:06AM
(#5556877)
By itself SOA doesn't do anything but it does free you up to do other things that allow you to scale like read-write separation and event driven or fan-out caching. One of the most important thing SOA does is that it quickly stops you from doing dirty hacks that work right now but are killers for future work. It's encapsulation at the application level
Re:Scaling Pinterest - From 0 to 10s of Billions of Page Vie...
by arocks on Tuesday April 16, 2013 @04:23AM
(#5556946)
Service orientation allows specialization of architectural components. If you want to build on scale, it is easier to replicate specialized components than a generalized one. It also benefits from better fault tolerance.
Additionally, services layer forms an interface between the client and service provider, which makes it easier to scale.
I don't quite understand how it reduces connections. If you have your front-end tier connecting to your service tier, you'll still have the same amount of requests going to the database, just with a little middle-man... If I understand correctly?