Win a copy of Design for the Mind this week in the Design forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

SCEA part II, integration with external system

 
Krzysztof Koziol
Ranch Hand
Posts: 133
Eclipse IDE Java Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,

I've got the following case. Application displays data that comes from an external system and utilizes WS in order to retrieve it. Data includes list of categories or information regarding each product. Of course performance is important.

What would be the best approach to design it? As for now I see two options:

1) Assume that volume of data is low so it could be retrieved each time when user request it (via WS)
2) Assume that volume of data is high, we decide to synchronize data between an external system and application DB (make copy of it)

I'm afraid that the 2nd option may introduce stale data since we will not be able to synchronize it so often (let's say once a day seems reasonable)

Any other ideas?

Regards,
Krzysztof
 
Rishi Shehrawat
Ranch Hand
Posts: 218
Hibernate Java Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Keeping a local copy of the database will add complexity & overhead. You will have to have a mechanism to synchronize it, given that it is a external system it might not be simple. How do you transfer, how often, additional manageability issues will also arise.

If you are concerned about performance & are sure that the data is not volatile, you could cache it before you make web service call. Basically before making web service call check if data is available in cache, if it is not available in cache retrieve it & also update cache. You can also add a mechanism to invalidate data which is older than pre-configured value to address concerns about stale data. Actually if you use a third party cache provider, these type of cache invalidation features are inbuilt .
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic