1. Big smokes check in house inventory
2. Big smokes use JMS to check manufactures’ cigar availability.
To check manufacture’s status, it needs to update the manufactures’ status in order to keep the availability up to date. Suppose even manufactures allows the update, but all communication is carried by JMS, which is asynchronized communication method essentially. If a update happens during an order processing period, which should obviously be in an transaction, how can we know if it succeeds or fails? Thus, if it fails, the transaction will be fail.
Or, we just assume all transaction will be successful. Anything request sent to manufactures can be met (after all, they make cigars), than, I guess the availability for manufactures’ would be unlimited….
I've got the same question on my mind.
There is a call to Check the Inventory Availability each time, but strangely at the time of the checkout the usecase does not talk about updating the inventory at all.
Even if I assume that the Inventory Update happens after the Credit Card Verification in the same transaction, the Jms interface provided by the Manufacturers is not the most apt interface to make this synchronous call.
I am not sure if its insufficient Domain Knowledge in context of Demand / Supply / Availabilty due to which I have this confusion. For me , it makes no sense to check for the inventory without an Update Inventory step.
I think it is the in house inventory availability is checked. To check the Manufactures' availability is not included in Use cases. It might be something introduced in the future. This could be in the assumption.