Definition

Asynchronous

In general, asynchronous -- pronounced ay-SIHN-kro-nuhs, from Greek asyn-, meaning "not with," and chronos, meaning "time" -- is an adjective describing objects or events that are not coordinated in time.

What does asynchronous mean?

More specifically, asynchronous describes the relationship between two or more events/objects that do interact within the same system but do not occur at predetermined intervals and do not necessarily rely on each other's existence to function. They are not coordinated with each other, meaning they could occur simultaneously or not because they have their own separate agenda.

Uses

The term itself is broad and has many applications. In information technology (IT) alone, the term has several different applications. In most IT contexts, asynchronous refers to a style of communication that can occur both between people and between technological components. Since the term casts such a wide net, even within IT, it can be difficult to reconcile its general definition when comparing its various applied uses.

One simple way to understand asynchronous is through the lens of personal communication. Sending an email or text is an example of an asynchronous form of communication because they do not necessarily have to be coordinated in time. Each event or sent message can happen at irregular intervals because the information is stored for whenever the recipient chooses to access it. Events happen independently of each other and have no fixed agenda.

This can be contrasted against in-person conversations and video conferencing, which are synchronous communication methods, because the events -- turns in conversation -- need to happen in order and over a fixed span of time -- the amount of time that participants are engaged in the conversation. The events are dependent on each other and build on top of one another in a linear fashion.

The bottom line is: In synchronous personal communications, recipients must respond immediately; in asynchronous, they can respond at their convenience.

This general model applies to most asynchronous contexts, the variables being the units of information -- referred to as objects or events -- and the medium used to communicate them.

Some prominent examples of the term's use are in computer programming, in which the program is communicating with the computer, and telecommunication, in which signals are transmitted at certain rates and affect the quality of the information they contain based on those rates.

Asynchronous in telecommunication

In telecommunication signaling -- within a network or between networks -- an asynchronous signal is one that is transmitted at a different clock rate than another signal. Plesiochronous signals are almost but not quite in synchronization -- and a method is used to adjust them -- and synchronous signals are those that run at the same clock rate.

Asynchronous in computer programming

In computer programming, asynchronous operation means that a process operates independently of other processes, whereas synchronous operation means that the process runs only as a result of some other process being completed or handed off. A typical activity that might use a synchronous protocol would be a transmission of files from one point to another. As each transmission is received, a response is returned indicating success or the need to resend. Each successive transmission of data requires a response to the previous transmission before a new one can be initiated.

Asynchronous in workplace communication

The term asynchronous is also used to describe a growing trend in workplace communication. Applications known as team collaboration tools are used to enable employees to have conversations that are not bound by a linear format; the participants don't need to wait for responses to carry out the conversation. This format of communication increases flexibility, enabling participants to engage with each other without time- and location-based restraints. Instead of having an in-person conversation -- an event that requires both parties to be present in real time and volleying responses -- participants can use team collaboration tools to communicate remotely and in their own time frame.

Examples

Below are a few applied examples of the term asynchronous as it is used in each context mentioned above.

Telecommunication. The clarity of transmission is critical when communicating using devices such as a radio or telephone. It requires the data being exchanged to be processed by both parties in phase with each other, according to a shared rate. When this is done using a centralized clock, it is a synchronous transmission.

However, it can be done asynchronously as well. Asynchronous transfer mode (ATM) is a protocol used in telecommunications to enable the asynchronous transmission of data without the signals having to pass through a mainframe or centralized clock. Instead, ATM establishes a pathway through the network for the data and assigns it a traffic contract that ensures data is processed according to an agreement made between the client and the network. For example, this can guarantee a constant bit rate for telephone calls, ensuring a caller's voice is not cut off or delayed.

Programming. One tangible example of a program that operates asynchronously is a printer's embedded software. When a printer sends out a low toner alert to the user, it continues to print. The printer does not stop everything to issue the alert and then resume. The part of the program that issues the alert is not dependent on the part that triggers printing. They can occur simultaneously because they function independently.

Another slightly more abstract example is the use of asynchronous methods in common programming languages, such as JavaScript, Python and C#. Also known as nonblocking code, asynchronous programming provides opportunities for a program to continue running other code while waiting for a long-running task to complete. The time-consuming task is executed in the background while the rest of the code continues to execute.

The feature that enables asynchronous programming in these languages is referred to as a callback function. In JavaScript, all operations nested in the function are sent off to a web application or database to gather the necessary information while the rest of the program continues to run. When the information is gathered, it is sent back through the program and applied to the functions in the program that rely on it, hence callback.

Communication. Applications such as Slack, Google Hangouts and Jira provide file sharing, online whiteboard and chat features that enable teams to coordinate workflows without needing each member to be present to participate in the immediate conversation. As a result, employees can remain connected without being bound by the time-based nature of a conversation. Employees in different time zones can participate just as effectively as an in-office employee in this asynchronous framework.

Asynchronous vs. synchronous

Each of the contexts and examples mentioned above -- telecommunication, programming and workplace communication -- have both synchronous and asynchronous methods. There are both synchronous and asynchronous programming languages, workplace communication styles and telecommunication methods.

In fact, many of these communication contexts are inherently synchronous in their simplest form. A conversation between two people, in its most basic incarnation, is reliant on the call and response of the two participants in chronological order.

JavaScript is another example of a mode of communication that is inherently synchronous but has been modified to be asynchronous to enable programs to effectively multitask and make programmers' lives easier.

A type of communication becomes asynchronous when the medium used to communicate -- programming language, telecommunications network or team collaboration application -- becomes complex enough that it can process and store communicated information over time, enabling the participants to communicate along more than one thread without reliance on a linear structure.

Benefits and drawbacks

The benefits of an asynchronous communication format are, as mentioned, an increased flexibility in the structure of information exchange and a freedom from reliance on a universal time scale or logic for conversations.

However, the main drawback of asynchronous is that it can introduce a layer of complexity to communication that can complicate or even sabotage the exchange of information.

These benefits and drawbacks manifest in asynchronous computer code. For example, coding an excess of callback functions can get messy and becomes a nightmare for programmers attempting to analyze them. Syntactic features, such as promises and async/await patterns, have been introduced to streamline code syntax and ease the experience of reading it for programmers. Still, these features add a layer of complexity to the code.

If the program's sole purpose is to run simple, sequential tasks -- such as data processing, which can tolerate the stop-and-wait aspect of synchronous programming -- then synchronous is the better choice. The benefits of asynchronous code make it more suitable to programs that need to respond to events, such as a graphical user interface (GUI) program.

Asynchronous benefits and drawbacks also manifest in the use of team collaboration tools. In addition to the flexibility they provide employees, team collaboration tools can provide a record of all shared communications that employees can reference later. They also give employees time to think through responses to teammates because an immediate response isn't required.

However, if used in a disorganized manner, these tools can perpetuate muddled conversation. Since users can freely and easily make comments and contributions anytime and anywhere, business conversations can easily be led astray through the inclusion of excess feedback. Also, the responsibility is on the user to stay engaged in the multiple conversation threads that occur in team collaboration tools. A failure to remain engaged or forgetting about threads can lead to a lack of transparency that negatively impacts employees whose work depends on others.

In short, asynchronous communications provide the benefits of increased flexibility and efficiency but can pose problems when a proper organizational structure isn't implemented to handle the excess noise that asynchronous frameworks can sometimes promote.

This was last updated in December 2019

Continue Reading About Asynchronous

Dig Deeper on Network infrastructure

Unified Communications
Mobile Computing
Data Center
ITChannel
Close