Preliminaries
Set up a Kafka server. TODO.
Security configuration for Kafka. TODO
Configuring users for Kafka TODO
Configure the Hub's shrine.conf
In tomcat's shrine.conf in the hub, turn off the in-tomcat messaging by setting shrine.hub.messagequeue.blockingWebApi.enabled to it's default false value by removing it from the hub block:
shrine { ... hub { create = true }//hub ... }//shrine
Tomcat will need the hub's Kafka credentials to send and receive messages in tomcat's password.conf:
TODO
Configure shrineNetworkLifecycle
The shrineNetworkLifecycle needs the admin Kafka credentials to create, modify, and delete Kafka topics. Add that to the shrineNetworkLifecycle's conf/password.conf :
TODO
network.conf
To use Kafka: in network.conf, specify a Kafka section with the specifics to share with downstream nodes:
shrine { network { network { name = "Network Name" hubQueueName = "hub" adminEmail = "yourEmail@yourhospital.edu" momId = "arn:aws:iam::1234567890:user/your-hub" kafka = todo } nodes = [ { name = "Hub's node" key = "hub-node" userDomainName = "network-hub" queueName = "hubNode" sendQueries = "false" adminEmail = "yourEmail@yourhospital.edu" momId = "todo" } ] } }
The hub controls the Kafka topics. TODO
Choose a network prefix. This will be prepended to queue names to allow managing multiple networks on the same Kafka cluster.
Use the Kafka user name of the account to receive the messages for the momId. Find this on TODO
Note that the network's momId is the same as hub's node momId. The Kafka admin will make a Kafka account for each downstream node.