Asynchronous systems do not depend on strict arrival times of signals or messages for reliable operation.
Coordination is achieved using event-driven architecture triggered by network packet arrival, changes (transitions) of signals, handshake protocols, and other methods.
Asynchronous systems – much like object-oriented software – are typically constructed out of modular 'hardware objects', each with well-defined communication interfaces.
The modules can then be combined to form a correct working system, without reference to a global clock signal.
At the extreme, high-performance "timed circuits" have been proposed, which use tight two-side timing constraints, where the clock can still be avoided but careful physical delay tuning is required, such as for some high-speed pipeline applications.. Asynchronous communication is typically performed on communication channels.
While this scheme has timing constraints, they are simple, localized (unlike in synchronous systems), and one-sided, hence are usually easy to validate.
Adapted from Steve Nowick's column in the ACM SIGDA e-newsletter by Igor Markov Original text is available at https://web.archive.org/web/20060624073502/http://www.sigda.org/newsletter/2006/eNews_060115.html