Each of the OpenWMS.org services can be assigned to one of the four domains: **CORE**, **COMMON**, **TMS** or **WMS**. A more concrete view with seven often used microservices looks like below. Notice that the information flow is visualized not the dependency graph. **WMS** services are not directly called from services of the **COMMON** or **TMS** domain. **Figure 4. Informationflow between 7 OpenWMS.org microservices**
ComponentResponsibility
COMMON Service

Manages Locations, LocationGroups, TransportUnits and other essential domain objects that exist in every warehouse solution.

The COMMON Service does not know about other surrounding services but sends out information to its outer components

TMS ServiceTracks the movement of TransportUnits with TransportOrders in automatic warehouses. The service directly uses the interfaces of the COMMON Service
COMMON DriverThis is the TCP/IP driver component used to communicate to subsystems that implements the OSIP protocol. It forwards incoming messages to a routing component, like TMS Routing in an automatic warehouse
TMS RoutingThis is a routing component used in automatic warehouses where actually the material flow control logic is defined. For this it uses many API of other services indirectly
WMS InventoryThis service is responsible to manage warehouse inventory, like Products and is mainly triggered by changes in other components
WMS ReceivingWarehouse receiving processes, like receipt announcements are implemented and processed here. It consumes events from other services and directly calls API of others
WMS ShippingContains warehouse shipping processes that trigger movements