Designed asynchrony

Few cases of designed asynchrony can be imagined:

  • Event-based service oriented architectures;
  • Fail-safe systems (mechanical, electronic or software);
  • Agent-based models;

It is important to distinguish these from parallel systems. In such system, each parallel process during the execution knows nothing about another process (well, except if shared memory space is used). Nevertheless, they are centralized, because parallel processes are usually being spawned by the central program, which eventually accumulates results of all parallel processes and makes a global decision (something similar to MapReduce algorithm).

By the way, parallel / distributed systems with shared memory space may be conceptualized as an implementation of stigmergy, which is important concept in the domain of collective intelligence.