Sharing events using an event bus

So far in this chapter, we've seen how we can share information over HTTP by calling other web services. As we've already mentioned, it is important to not replicate information between services and, more importantly, that each service must be the owner of a single data source, which needs to be as isolated as possible. Another technique we can use to share information is pushing data using events. In this section, we will begin by examining one use case that is suitable for an event bus.

Let's suppose that one of the catalog items reaches an available stock amount of zero and enters the sold-out state. We need to propagate this information and tell the cart service that this specific item is sold out. This use case can be implemented using an event bus.

 To understand this architecture, take a look at the following schema:

The catalog service triggers an event each time the available stock of an item reaches zero. The cart service listens for this event and then triggers the update of the cart that's stored in the Redis data source. For this purpose, we will use RabbitMQ, which is one of the most common event buses. RabbitMQ provides a .NET package that can be used to implement the communication between two solutions: https://github.com/rabbitmq/rabbitmq-dotnet-client

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.149.214.32