Asynchronous communication allows for Job A to continue while another Job B happens in parallel. When Job B has completed, it will let Job A know so that Job A can continue along.
The idea is that we are not blocked waiting for Job B to finish and other jobs can carry on while we “wait” for Job B to get done. At some point Job A will have to wait for Job B to complete, but hopefully, it will not be as bad as if it were a serial operation.
Athletes are great at asynchronous operations – when they shoot on the goal, they don’t stand there waiting to see if it will go in and not do anything else until it’s reached the goal (the good ones anyway) – no they keep moving around, preparing for a rebound, getting open for a follow-up – basically try to do anything and everything to get ready for what will come next.
That’s the thing about Asynchronous programming that we often forget, what are we going to do next?
Are we going to sit here and wait, or are we going to do something useful?
Want more? Check out my book Code Your Way Up – available as an eBook or Paperback on Amazon (CAN and US). I’m also the co-host of the Remotely Prepared podcast.