Messaging between processes

An important milestone has been reached today: messaging between processes works and displays in Mimas as in the example below:

messaging in mimas

‘a’ and ‘b’ are different processes, possibly on different boxes

plug & play

The connection between process “a” and “b” does not depend on the order in which the processes are started and does not require complicated IP configuration. The link is simply defined in the source (sender) with a fully qualified url. For example, this is the yaml definition for the counter in process “a” :

counter:
  x: 30
  y: 45
  hue: 0
  links:
    count:
      /b/play/in/trigger: true
    params:
      tempo: 580

The links are defined as a dictionary so that link removal can be managed by setting the url to false.

resiliency

If “a” or “b” goes offline, the link goes into “disconnected” state. When the missing process comes back, the link automatically reconnects and the messages are transmitted on the line.

links in the editor

As highlighted in the image above, links properly display in the editor, even if we cannot create them there yet and there are some display bugs.

technical details

The receiver has a single zmq “PULL” socket announced by ZeroConf and the sender pushes the data through this socket along with the target url. When an object is taken offline, ZeroConf informs the other party and the sender stops sending.

Gaspard Bucher

comments

  1. leave a comment