Content
Lets have a closer look and look inside the microservices to see how they interact between each other. Only the asynchronous communication path is shown with the messaging components like Message Filters, Message Queues and routing information.
Figure 5. Insight of communication between the 7 OpenWMS.org microservices
Important to notice is the component who owns a shared resource. Basically queues are never shared and always kept by the service internally. But intermediary components like Routers or Filters (here RabbitMQ exchanges) need to be accessed from both communication partners, hence a clear ownership must be defined. As an example take the exchange with name common.tu.commands
into account. This is owned by the COMMON Service and used as an inbox and outbox for command messages. Consumers interested in outgoing commands may subscribe a queue to this exchange to gets updates on cache evicts or to send commands to create data managed by the COMMON service. The command structure itself is also given by the COMMON service.