Micro Architecture
The micro architecture diagram in figure 1 is the detailed view on the macro architecture diagram in section [Macro Architecture]. In this micro perspective on the architecture, the software layers are described with the internal components and structures. The communication flow is highlighted by the black arrows. A software layer is only allowed to use functionality provided by the underlying layers or the ones that are on the same level.

Figure 1: Micro Architecture diagram with the layer-internal components. The communication flow is pointed out with the black arrows.
Beginning at the bottom of the diagram, it is to determine that in the Data Access Layer the O/R Mapping takes place, which is realized with Entity Framework. In order to define the object-relational mappings, the Persistence Entities represent the persistence model, which is focused on modelling the database relations in object-oriented code. The ability for the overlying software layers to abstract from the data access logic is given by the Repositories in the Data Access Layer. These provide standard CRUD functionality and make use of the DataMappers in order to map from the persistence entities to the domain entities, which can be seen in the Domain Layer.
The next higher abstraction level is the Stock Management Layer. Its responsibility is to provide domain-specific logic for the business processes in the Domain Layer. That is, the Stock Management Layer controls the material flow which manages database transactions, History writing and Crib System Management. Another responsibility of the layer is the Stock Management and Administration, which includes location resolution, warehouse capacity management and master data.
The Domain Layer is the place, where the Business Logic gets executed and the booking workflow is defined. In this context, the Domain Layer makes also use of the provided extensibility functionality in the Infrastructure Layer. In addition, the Warehouse Control System is placed in this layer. This means, that the different Booking Processors (one per tool type) are implemented and executed on this level. The Domain Layer also defines the domain model, which consists of the relevant domain entities and the relations between them.
On top of all the layers, the Services Layer serves as the public API of the Warehouse Management System. All the booking functionality, that is provided by WMS can be accessed here. Therefore, a standard Booking Service is available as well as a Fluent Booking Service API. An example for each type of service results from [Macro Architecture].
Detailed Layer Description
The previous section served as an overview of the micro architecture, which joined the dots, but didn't impart the details. For a more detailed perspective on each of the layers, it is to refer on the following chapters: