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.