Is there any design patterns (or best practices) for implementing a geographically distributed system (mostly a database)?

Description: There is a network of warehouses and a central office. Now I want every warehouse replicates it's data to the central office and the central office replicates just that portion of data related to that warehouse (when it's modified). This I can call a "filtered replication". Our database here is SQL Server 2008 R2. Should I go with another database? How about NoSQL databases?

This is a .NET based solution.

So far I have learnt about Web Synchronization for Merge Replication and I am investigating it; but I did not learnt how to implement filtered replication yet. I am not sure how NoSQL fits for an e-commerce problem (I think I need to use a combination of NoSQL+RDBMS if I should go that way) but I am investigating RavenDB and MongoDB.

Any insight would help a lot; Thanks;

  • 1
    What is it about your warehouses that you don't think they could access a central database at the corporate data center?
    – JeffO
    Sep 3, 2013 at 19:13
  • It's the part (so called) "filtered replication"; so far I have not any idea how to implement that part. Every node should work with that portion of data that it is authorized to; and there is a common portion of data that should be shared among all nodes. Sep 3, 2013 at 19:22

1 Answer 1


Any research on "The CAP Theorem" will give really good insight. In general, it outlines the considerations for distributed file systems, and in researching any of those, you will find numerous solutions that meet your particular requirements..

  • 4
    It would help if you'd summarize some information/insights/solutions here.
    – dcaswell
    Sep 3, 2013 at 19:24
  • 1
    What is the "CAP Theorem"? How is it useful? When should I use it? Where should I apply it? Why should I care?
    – user28988
    Sep 3, 2013 at 21:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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