Καλημέρα,
Δύο είναι οι βασικές παράμετροι στην επιλογή λύσης για ένα τέτοιο πρόβλημα:
1)Διαθεσιμότητα
2)latency
και είναι η μία εις βάρος της άλλης.Δηλαδή αν είσαι online(π.χ. vpn) έχεις πάντα πρόσβαση στα κεντρικά δεδομένα real time αλλά αν πέσει η γραμμή (για οποιοδήποτε λόγο) δεν έχεις καθόλου εφαρμογή.Απο την άλλη αν έχεις τοπική βάση και συγχρονίζεις κάθε βράδυ θα έχεις πρόσβαση στα δεδομένα του κεντρικού με 1 μέρα latency.
Πέρα απο τη θεωρία λοιπόν μια λύση που νομίζω οτι ταιριάζει στο πρόβλημα σου είναι το merge relication.Είναι σχετικά έυκολο να στηθεί,έχει μέγιστη διαθεσιμότητα γιατι κάθε υποκατάστημα δουλεύει ανεξάρτητα αν δουλεύει η γραμμή και ορίζεις εσύ το latency,δηλαδη κάθε ποτε θες να γίνεται ο συγχρονισμός.
Η λύση αυτη όμως μεταφέρει κόστος στο σχεδιασμό της εφαρμογής(πρέπει να εξασφαλίσεις οτι δε θα περαστεί πελάτης με τον ίδιο κωδικό σε 2 υπ/τα) και στο maintenace καθως το να αλλάξεις το σχήμα της βάσης με νέα έκδοση δε θα είναι πια το ίδιο εύκολο και στη συντήρηση καθως κάποιος θα πρέπει να παρακολουθεί τα μυνήματα των Agents