A modular, polyglot architecture has many advantages but it also adds complexity since each incoming request typically fans out to multiple distributed services. For example, in an online store application the information on a product details page – description, price, recommendations, etc – comes from numerous services. To minimize response time and improve scalability, these services must be invoked concurrently. However, traditional concurrency mechanisms are low-level, painful to use and error-prone.
You can find the source code for the examples on github.com.
Here is the version of the talk that I gave at SpringOne 2013.