MagicBus
- exchanges data between separate processes over a TCP/IP channel,
- processes can enter and leave the magicbus whenever they want to,
- a process can register itself and change its name on the magicbus at any time,
- only one connection channel is needed to communicate with several other processes,
- the same uniform interface can be used to exchange data between different applications,
- communication with the magicbus is asynchronous,
- a process can be a server and a client at the same time,
- a message can be a notification and no reply is expected,
- a message can be a request in which case a reply is expected,
- if a reply isn’t received after a given fixed time, an error is automatically reported,
- a message can be broadcast to several processes registered under the same name,
- when a given process fails, messages are automatically redirected to a process with the same name,
- there is no limitation to the number of communicating processes,
- there is no limitation to the size of the messages processes can exchange,
- a missing peer process or a transmission error is always reported,
- can be interfaced in any programming language.