Asynchronous Communication: 5 Main Points

The Hollywood Principle or Inversion of Control (IoC):

Allegedly the origin of the famous Hollywood principle in software design is based on the belief that when an aspiring actor finishes an audition, he/she is told “Do not call us, We’ll call you”. In software terms, it means we separate the creation and binding of an object. This pattern is commonly known as Inversion of control and is achieved via dependency injection.

The Air Traffic Controler or Mediator Pattern:

The most traditional example of breaking dependencies is by using a message bus. This is not the most effective design in the cloud-native world but it’s very convenient as every company has some form of message bus already implemented.

Messaging is Dead, Long Live Eventing:

The traditional design around messaging is so arcane that new-age developers coined a new term i.e. “eventing”. The key idea is that:

  1. the internal state of a software component is its internal business and the external world should not care about it.
  2. while the old messaging architecture meant the creation of a specific messaging, in eventing no message is created. Life-cycle events of a component or service are simply exposed on standard output and error channels and whoever cares should simply observe these events (therefore observability)

Live n synchronous virtuous life.

When we designed the initial architecture of the Roost “Environments as a Service platform”, the very first component we built was asynchronous communication based on 4 golden signals i.e. latency, traffic, error, and saturation. It was not something we even had to debate about as we all in the founding team knew that all great software is built on a good messaging backbone.



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Rishi Yadav

Rishi Yadav

This blog is mostly around my cloud-native & Environments-as-a-Service (EaaS) technology insights. I would throw some crypto wisdom here and there.