Although the default transport protocol is IPC for operating systems that provide UNIX domain sockets and TCP for the rest, there are other transport protocols that can be used in osBrain:
tcp: common TCP. Can always be used, and must be used to communicate agents running in different machines.
ipc: common IPC. It is the default and the best suited for communication between agents that run on the same machine
inproc: for in-process communication (between threads). The fastest protocol, although it is limited to communication between threads that share the same
The transport protocol can be changed on a per-socket basis, per-agent basis and also globally.
Changing the transport¶
It is possible to change the default global transport protocol by setting
osbrain.config['TRANSPORT'] configuration variable. So, for example, to
set TCP as the default transport, we could set:
osbrain.config['TRANSPORT'] = 'tcp'
We can also set the default transport that a particular agent should use by
default by passing the
transport parameter to
agent = run_agent('a0', transport='tcp')
If we do not want to change the global default nor any agent’s default, then
we can still change the transport protocol when binding, passing the
transport parameter again:
agent = run_agent('a0') agent.bind('PULL', transport='inproc')
It is also possible to change the global default transport protocol
OSBRAIN_DEFAULT_TRANSPORT environment variable.