posted 8 years ago
Thanks for letting me to think more. I get back with refreshed thoughts:
1) requirement is to make 3 WS requests to open markets in continuous iteraction . Another requirement is that iteration actually repeats 1 MINUTE TIME FRAME. I see a risk here that web services execution could take longer than 1 minute if we execute them one after another in a synchronous way. So, I decided to decide asynchronous web services call for 3 open markets. So, on start I will run all 3 requests to markets in parrallel. What do You think about my idea ? is it good or you ask me to think more ? In case of going asynchronous way, I decided to go with Messaging, MDS and Queue. I prefer this apporach to multi threading, are you agree with me ? All that adds additional complexity to the system and I am worry, if it really needed.
2) question about asynchronous communication. I can't find any common design solution for the action "method call" which need to be executed then exactly 3 open market services returned responses. In other words, execution after last of 3 callbacks completion. Any help here ?
3) question about the Inventory. I found some trick in use case descrition. Calling use case we use "check inventory levelS" but "Check Inventory" byitself contains an action retrieve inventory level (single). It looks like, we do a request for collection of stones to use case and retrieve level per request doing a call to Inventory service. Is it just some minor mistake in assignment or its a trick thick I must to resolve. As from my understanding, inventory returns 1 stone level per request, am I correct ? What do You think about doing a calls to inventory in asynchronous way too for performance improvement ?
4) check inventory use case has only one caller in description, but as a fact it can be called from other use cases too. In more details, item in use case actions started from receive request from one service but on practice two use cases (services) can do a request to it and those two use cases I will implement using different managers. How do I need to dial with that ?