A development team is building a new e-commerce platform using a microservices architecture. The 'Order' service needs to inform the 'Inventory' service to decrement stock and the 'Notification' service to send a confirmation email after an order is placed. Which communication strategy would be most appropriate to ensure resilience and loose coupling between these services?
-
A
Synchronous communication using direct REST API calls from the Order service to the Inventory and Notification services.
-
B
Asynchronous communication using a message broker, where the Order service publishes an 'OrderPlaced' event.
-
C
A shared database where the Order service writes a record, which is then polled by the Inventory and Notification services.
-
D
Batch processing where orders are collected and processed by other services at scheduled intervals.