Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Let's say you have a Master Database and a few External/Internal applications that use WebServices to interface data.

What would be your preferred architecture to interface data from and to those applications? Would you put some sort of Enterprise Service Bus in between? Like BizTalk? Or something cheaper?

We don't want to block applications while they are interfacing, but we do want to use return codes from the interfaces to determine if we need to take some actions in the originating application or not.

share|improve this question
When you say "interface data" from one application to another what do you mean? Are you just interested in synchronizing the state of one system's data across all the other systems? – hugh Jun 3 '12 at 16:18
When users add/update/delete data in one application, there has to be taken 'some' action in one or more of the other applications. For example, delete the same record, or check the 'deleted' flag. – Erwin Jun 4 '12 at 6:15

When I have done this sort of thing before - database shared across applications, I find it best to have a single "engine" management service that handles the database - and all apps interface with that. This allows for single place for database code changes - new tables etc - and also managing access, turning on/off application access, security, downtime and maintenance tasks (including database moves/upgrades etc).

It is often worth the extra initial effort - and many appls can use the same code/sprocs etc without any need to know the database at all (abstracted away).

This does have some risks of course - it is a single point of failure across the platform (but so is the database itself if it is shared) and it has to be secured and signed to protect against illegal calls from suspect code.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.