We want to collect data from all stores and load the main DB (for BI),
SSIS (o altro software ETL) viene spesso utilizzato per caricare un "Data Warehouse" a scopi di business intelligence. Questo suona molto simile a quello che stai cercando di fare. SSIS può avere tutti i tipi di trasformazioni che ti aiuteranno a ottenere i dati in una buona forma per condurre efficientemente la BI.
we also want to sync data from main DB to retail DBs, when new product is awailable for selling
Questo puoi anche eseguire con SSIS. Dal momento che questo suona più mission critical, è importante avere un buon monitoraggio e tracciamento sul posto. Dovresti sapere se un negozio al dettaglio non è stato aggiornato per qualche motivo e potresti dover eseguire controlli di coerenza per assicurarti che la tabella del prodotto per ogni negozio al dettaglio sia completa.
Un'architettura migliore implicherebbe che il software del punto vendita al dettaglio colpisca un servizio Web presso l'ufficio principale per vedere quali prodotti sono disponibili. Ciò garantirebbe che non vengano venduti prodotti che non dovrebbero essere venduti e rispecchierebbe immediatamente i nuovi prodotti. Ma capisco che questo tipo di architettura potrebbe non essere possibile perché le connessioni Internet potrebbero non essere affidabili presso il punto vendita.