Slide deck of my talk at Cloud Connect 2013 in Mumbai.   I spoke on the topic of architecting multi-cloud applications.   

This post originally appeared at

Pieter Hintjens, one of pioneers of the distributed computing and author of ZeroMQ library explains the basic premise behind ZeroMQ design and community. He covers fundamentals of designing large distributed applications using ZeroMQ library.

First and foremost, the book is meant for intermediate to advanced programmers. You need to be aware of the networking concepts. All examples are in C, so you should have good enough grounding in the language. Once you are past these, understanding the concepts in the book is fairly easy.

First part of the book is about Learning to work with ZeroMQ. This section covers all the patterns – Request-Reply, Dealer-Router, Pub-Sub, Proxy, Load Balancing and their combination and usage with each other. The example scenarios detail the scenario’s where these patterns fit in. This section also covers how to build reliability and availability as part of the distributed application.

There is a significant change in how software is developed over the last decade. Agile had been the buzzword over the last decade and probably is most significant of changes in software development to date. Now that the hype around Agile has been subsided, it is worth an effort to understand what it is like post agile. Often we see Agile with a narrow perspective, limiting it to a few programming practices and nothing more. We also fail to notice the indirect influence and the larger impact of Agile over the last decade.

State of post Agile Software Development will have to be seen in multiple dimensions in order to really understand its impact:

  •  Software Development & Life cycle tooling landscape has completely changed 
  •  Software Project management methods (apart from development method) have changed 
  •  Focus on Software craftsmanship
  •  Re-imagined Technology stack