The goal of a microservice architecture is to de couple the work of development teams so that they can deploy without spending too much time on coordinating over libraries, versions, and technologies. This is done using message passing as the sole communication mechanism between components. The drawback to using a microservice architecture is that you need to pay careful attention to performance with the message passing.
I participated in a workshop on microservices at the recent SATURN conference (as well as a mock trial where microservices were accused of being an attractive nuisance). The prosecutor was Simon Brown and the defendant was Sam Newman. I was the judge. The output of the workshop can be found here
https://github.com/michaelkeeling/SATURN2015-Microservices-Workshop and the mock trial was videotaped and that should be online relatively soon. Sign up for SATURN 2015 notifications to be notified when the video is available.