It is obvious from reading the code that there was some attention given to CQRS. Unfortunately, I can’t really figure out what for.
To start with, both the Read Model and the Domain Model are actually sitting on the same physical location. If you are doing that, there is a 95% chance that you don’t need CQRS. If you have that, you are going to waste a lot of time and effort and are very unlikely to get anything from it.
In the case of NSK, here is the domain model vs. the read model for the customer.
I marked the difference.
I am sorry, there is nothing that justify a different model here. Just needless complexity.
Remember, our job is to make things simpler, not make it hard to work with the application.