Lakesuperior Messaging

Lakesuperior implements a messaging system based on ActivityStreams, as indicated by the Fedora API specs. The metadata set provided is currently quite minimal but can be easily enriched by extending the Messenger class.

STOMP is the only supported protocol at the moment. More protocols may be made available at a later time.

Lakesuperior can send messages to any number of destinations: see Installation & Configuration.

By default, CoilMQ is provided for testing purposes and listens to localhost:61613. The default route sends messages to /topic/fcrepo.

A small command-line utility, also provided with the Python dependencies, allows to watch incoming messages. To monitor messages, enter the following after activating your virtualenv:

stomp -H localhost -P 61613 -L /topic/fcrepo

See the stomp.py library reference page for details.

Disabing messaging

Messaging is enabled by default in Lakesuperior. If you are not interested in interacting with an integration framework, you can save yourself some I/O and complexity and turn messaging off completely. In order to do that, set all entries in the routes section of application.yml to not active, e.g.:

[...]
messaging:
    routes:
    - handler: StompHandler
      active: False # ← Disable the route
          protocol: '11'
          host: 127.0.0.1
          port: 61613
          username:
          password:
          destination: '/topic/fcrepo'
          formatter: ASResourceFormatter

A message queue does not need to be running in order for Lakesuperior to operate, even if one or more routes are active. In that case, the application will throw a few ugly mssages and move on. TODO: This should be handled more gracefully.