http://www.infoq.com/articles/book-service-design-patterns