Edition 0 Updated to asp. Net core 0


Challenge #1: How to define the boundaries of each microservice



Yüklə 11,82 Mb.
Pdf görüntüsü
səhifə36/288
tarix12.07.2023
ölçüsü11,82 Mb.
#136458
1   ...   32   33   34   35   36   37   38   39   ...   288
Challenge #1: How to define the boundaries of each microservice 
Defining microservice boundaries is probably the first challenge anyone encounters. Each microservice 
has to be a piece of your application and each microservice should be autonomous with all the 
benefits and challenges that it conveys. But how do you identify those boundaries? 
First, you need to focus on the application’s logical domain models and related data. Try to identify 
decoupled islands of data and different contexts within the same application. Each context could have 
a different business language (different business terms). The contexts should be defined and managed 
independently. The terms and entities that are used in those different contexts might sound similar
but you might discover that in a particular context, a business concept with one is used for a different 


32 
CHAPTER 3 | Architecting container and microservice-based applications 
purpose in another context, and might even have a different name. For instance, a user can be 
referred as a user in the identity or membership context, as a customer in a CRM context, as a buyer in 
an ordering context, and so forth. 
The way you identify boundaries between multiple application contexts with a different domain for 
each context is exactly how you can identify the boundaries for each business microservice and its 
related domain model and data. You always attempt to minimize the coupling between those 
microservices. This guide goes into more detail about this identification and domain model design in 
the section 
Identifying domain-model boundaries for each microservice
 later. 
Challenge #2: How to create queries that retrieve data from several 
microservices 
A second challenge is how to implement queries that retrieve data from several microservices, while 
avoiding chatty communication to the microservices from remote client apps. An example could be a 
single screen from a mobile app that needs to show user information that’s owned by the basket
catalog, and user identity microservices. Another example would be a complex report involving many 
tables located in multiple microservices. The right solution depends on the complexity of the queries. 
But in any case, you’ll need a way to aggregate information if you want to improve the effi
ciency in 
the communications of your system. The most popular solutions are the following. 
API Gateway.
For simple data aggregation from multiple microservices that own different databases
the recommended approach is an aggregation microservice referred to as an API Gateway. However, 
you need to be careful about implementing this pattern, because it can be a choke point in your 
system, and it can violate the principle of microservice autonomy. To mitigate this possibility, you can 
have multiple fined-grain
ed API Gateways each one focusing on a vertical “slice” or business area of 
the system. The API Gateway pattern is explained in more detail in the 
API Gateway section
 later. 

Yüklə 11,82 Mb.

Dostları ilə paylaş:
1   ...   32   33   34   35   36   37   38   39   ...   288




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin