Such Read Model Projections are frequently used to expose information to various clients (such as desktop and Web user interfaces), but they are also quite useful for sharing information between Bounded Contexts and their Aggregates. Consider the scenario where an
Invoice Aggregate needs some
Customer information (for example, name, billing address, and tax ID) in order to calculate and prepare a proper
Invoice. We can capture this information in an easy-to-consume form via
CustomerBillingProjection, which will create and maintain an exclusive instance of
CustomerBilling-View. This Read Model is available to the
Invoice Aggregate through the Domain Service named
IProvideCustomerBillingInformation. Under the covers this ...