W pracy mamy kilka aplikacji z bazami danych na scentralizowanym serwerze SQL. Ilekroć jedna aplikacja musi pracować z danymi z innej aplikacji, po prostu ją odpytuje lub aktualizuje za pośrednictwem bazy danych. Uważam, że jest to wzorzec "Wspólna baza danych" opisany w książce Enterprise Integration Patterns (Hohpe & Woolf).Refaktoryzacja z dala od modelu współdzielonej bazy danych
Te zależności między bazami danych powodują wiele, wiele bólów głowy. Największym z nich jest to, że mamy problemy z wydajnością na serwerze SQL i nie możemy skalować z powodu zależności między bazami danych. Myślę, że powinniśmy odejść od wzorca współdzielonej bazy danych w kierunku systemu komunikacyjnego, tak jak to opisano w książce EIP. Każda aplikacja byłaby odpowiedzialna za wszystkie jej własne dane, a inne aplikacje, które chcą uzyskać dostęp do tych danych, otrzymywałyby je za pośrednictwem usług (w magistrali przesyłania komunikatów?).
- Gdzie rozpoczynamy refaktoryzację w kierunku wzorca wiadomości?
- Czy rozpoczynamy od refaktoryzacji jednej z aplikacji do zarządzania własną bazą danych aplikacji?
- Następnie, co z innymi aplikacjami jest obecnie zintegrowane z tym za pośrednictwem bazy danych?
- Czy to najlepszy sposób na rozłączenie zależności w bazie danych lub czy powinniśmy zacząć od czegoś innego?