This is a service for consuming FIXM data from SWIM and making it available on a RabbitMQ queue.
SWIM uses Solace, a proprietary message broker, to expose FIXM data to applications. SWIM seems to have configured Solace to use SMF, a messaging format specific to Solace. There aren't any Python libraries available to read this format, but Solace provides an official Java library for doing so. This service uses that library to make messages available on RabbitMQ, which does have Python support along with many other languages.
This service can be built with Docker using the following command:
docker build -t syncorswim/sos-swim-consumer .
Alternatively, assuming you have a JDK that supports Java 1.8 or newer installed, you can use Gradle to make a local build.
gradle distTar
The SWIM Consumer is configured using environment variables.
SWIM_BROKER_URL
: The URL of the SWIM message brokerSWIM_QUEUE
: The name of the SWIM message queue to get FIXM data fromSWIM_CONNECTION_FACTORY
: The name of the SWIM connection factorySWIM_VPN
: The SWIM message VPNRABBITMQ_HOSTNAME
: The hostname (domain name or IP address) of the RabbitMQ server to put FIXM data onRABBITMQ_QUEUE_NAME
: The name of the queue to put FIXM data onSWIM_USERNAME
: The username to log into SWIM withSWIM_PASSWORD
: The password to log into SWIM with