Edition 0 Updated to asp. Net core 0



Yüklə 11,82 Mb.
Pdf görüntüsü
səhifə123/288
tarix12.07.2023
ölçüsü11,82 Mb.
#136458
1   ...   119   120   121   122   123   124   125   126   ...   288
Integration events 
Integration events are used for bringing domain state in sync across multiple microservices or external 
systems. This functionality is done by publishing integration events outside the microservice. When an 
event is published to multiple receiver microservices (to as many microservices as are subscribed to 
the integration event), the appropriate event handler in each receiver microservice handles the event. 
An integration event is basically a data-holding class, as in the following example: 
public
class
ProductPriceChangedIntegrationEvent : IntegrationEvent 

public
int
ProductId { 
get

private
set
; } 
public
decimal
NewPrice { 
get

private
set
; } 
public
decimal
OldPrice { 
get

private
set
; } 
public
ProductPriceChangedIntegrationEvent
(
int
productId, 
decimal
newPrice, 
decimal
oldPrice) 

ProductId = productId; 
NewPrice = newPrice; 
OldPrice = oldPrice; 


The integration events can be defined at the application level of each microservice, so they are 
decoupled from other microservices, in a way comparable to how ViewModels are defined in the 
server and client. What is not recommended is sharing a common integration events library across 
multiple microservices; doing that would be coupling those microservices with a single event 
definition data library. You do not want to do that for the same reasons that you do not want to share 
a common domain model across multiple microservices: microservices must be completely 
autonomous. For more information, see this blog post on 
the amount of data to put in events
. Be 
careful not to take this too far, as this other blog post describes 
the problem data deficient messages 
can produce
. Your design of your events should aim to be “just right” for the needs of their 
consumers. 
There are only a few kinds of libraries you should share across microservices. One is libraries that are 
final application blocks, like the 
Event Bus client API
, as in eShopOnContainers. Another is libraries 
that constitute tools that could also be shared as NuGet components, like JSON serializers. 


136 
CHAPTER 5 | Designing and Developing Multi-Container and Microservice-Based .NET Applications 
The event bus 
An event bus allows publish/subscribe-style communication between microservices without requiring 
the components to explicitly be aware of each other, as shown in Figure 6-19. 
Figure 6-19. Publish/subscribe basics with an event bus 
The above diagram shows that microservice A publishes to Event Bus, which distributes to subscribing 
microservices B and C, without the publisher needing to know the subscribers. The event bus is 
related to the Observer pattern and the publish-subscribe pattern. 

Yüklə 11,82 Mb.

Dostları ilə paylaş:
1   ...   119   120   121   122   123   124   125   126   ...   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