# Message Broker
The message broker enables loose coupling between the microservices by only sending asynchronous messages. 

## Technologies
- Rabbit MQ (out-of-the-box Docker image)
- Docker
- Kubernetes

## Exchanges and Queues
The individual microservices create and subscribe to the following exchanges:
- inhub
  Used to send messages to the services in the *SMART transaction hub (in)*. 
- datahub
  Used to send messages to the services in the *Evolutionary semantic contextual data hub*.
- outhub
  Used to send messages to the services in the *SMART transaction hub (out)*.
- rest-gateway
  Used to send messages to the *SMART RESTful API Gateway*.

All exchanges are of type direct with names of the services as routing keys. For instance, to send a message to the Trace Retrieval microservice you have to use the exchange "inhub" with the routing key "trace-retrieval".