Assume we have a Bounded Context for Inventory (InventoryBC) and another one for Shipments (ShipmentsBC). These 2 BCs need to communicate together. They are hosted on 2 different services on different servers with different databases.
When a Shipment is made I might need to fetch some data from the Inventory BC so I think a REST GET request should solve it. However, when a shipment is done I need to decrease the Inventory so an Event “ShipmentCompleted” would do the trick.
However, what if one of the services is down? The writes aren’t lost as they will be persisted in a Queue till their consumption, but what about the reads? No reads= nothing working
Does this style of integration work in practice or is there better approach for a more scalable and loosely coupled system?