W przypadku, kiedy system składa się z mikroserwisów lub generalnie wielu fragmentów backendu, zasadne może być podzielenie bazy na mniejsze części. Ma to sens, ale co z uproszczeniem sobie sprawy i posiadaniem jednej bazy? Otóż, to niekoniecznie musi być dobry ruch.

#SharedDatabase #architekturaOprogramowania #SoftwareEngineering

https://devszczepaniak.pl/antywzorzec-shared-database/

Antywzorzec shared database - devszczepaniak.pl

Sharing is caring... to nie zawsze jest prawda. Shared database uznawany jest za antywzorzec. Z tego artykułu dowiesz się dlaczego.

devszczepaniak.pl
@WildaSoftware pracowałem kiedyś w projekcie z mikroserwisami i współdzieloną bazą i, szczerze mówiąc, chyba zrobiłbym to znowu, gdybym miał tamten projekt robić od nowa. Natomiast jakaś separacja musiała być - w tym wypadku ownership był na poziomie tabel i tylko jeden serwis mógł do nich pisać, ale wszystkie czytać. To było wygodne, ale wymagało zdyscyplinowanego zespołu, żeby z lenistwa nie naruszać tych reguł. Osobne bazy niewątpliwie dają tę zaletę, że nawet w chaotycznym zespole pewne rzeczy zostaną utrzymane, bo po prostu niektórych skrótów nie da się zrobić.
@pablo Dzięki za to doświadczenie, to jest cenny komentarz. Dobra architektura powinna, oczywiście, promować zdyscyplinowany zespół, ale też nie zaszkodzi, jeśli będzie odporna na wiele błędów mniej zdyscyplinowanego. No i bez konteneryzacji mikroserwisy z osobnymi bazami byłyby mordęgą (choć możliwą).