[2] [3] Active messages are communications primitive for exploiting the full performance and flexibility of modern computer interconnects.
They are often classified as one of the three main types of distributed memory programming, the other two being data parallel and message passing.
Early active message systems passed the actual remote code address across the network, however this approach required the initiator to know the address of the remote handler function when composing a message, which can be quite limiting even within the context of a SPMD programming model (and generally relies upon address space uniformity which is absent in many modern systems).
Newer active message interfaces require the client to register a table with the software at initialization time that maps an integer index to the local address of a handler function; in these systems the sender of an active message provides an index into the remote handler table, and upon arrival of the active message the table is used to map this index to the handler address that is invoked to handle the message.
A higher level implementation for active messages is also named Swarm communication in the SwarmESB project.