Synchronous vs. Asynchronous Systems
It is important to realize the differences between synchronous and asynchronous systems.
A synchronous system is one that you make a request to and wait for a response back from. Examples include a database, a Web server, a method call, a voice telephone call.
An asynchronous system is one to which you send a request and needn’t wait for a response. If a response is generated, you receive notification from the system once it is complete. Examples include the observer pattern, messaging queues, and voicemail systems.