Cześć
Tak sobie myślę, że warto byłoby rozpocząć pewien projekt według paradygmatu DDD. Zakładam, że będę miał jakieś agregaty i tak sobie myślałem jak to przechowywać w bazie danych. Doszedłem do wniosku, że przechowywanie obiektów domenowych w relacyjnej bazie danych może okazać się nieco uciążliwe (przy założeniu, że nie próbujemy z relacyjnej bazy danych zrobić bazę dokumentową). Po wstępnej analizie doszedłem do wniosku, że implementacje repozytoriów lepiej byłoby oprzeć o zapisywanie dokumentów w formie JSON (wstępnie wydaje się to być bardziej wygodne).
Nie mam doświadczenia z bazami NoSQL, ale jak mowa o bazie przechowującej JSON-y to od razu mam pewne skojarzenia z MongoDB. Jednak spotkałem się z krytyką tej bazy i zastanawiam się na ile hejt na MongoDB jest uzasadniony. Mam więc następujące pytania:
- Czy baza MongoDB jest naprawdę taka zła czy może jest to efekt jej popularności? Wiadomo, że więcej będzie krytycznych uwag w stosunku do czegoś co jest popularne niż w stosunku do czegoś czego nikt nie używa.
- Czy narzekania na MongoDB są spowodowane tym, że w starych wersjach były jakieś problemy, które zostały rozwiązane w nowszych wersjach?
- Czy uważacie, że osoby krytykujące MongoDB to osoby, które źle używają tą bazę danych? Na przykład modelują domenę biznesową myśląc (ze względu na przyzwyczajenia) w kategoriach relacyjnych baz danych?
- Czy zapis stanu obiektów domenowych (podejście DDD) to właściwy sposób wykorzystania bazy MongoDB?
Poza tym zastanawiam się dość mocno nad wykorzystaniem PostgreSQL jako bazy danych do przechowywania dokumentów (JSON). Z jednej strony wydaje mi się to dziwny pomysł ponieważ PostgreSQL ze swojej natury jest raczej bazą zorientowaną na relacje, ale z drugiej strony to nie chciałbym się zamykać na niestandardowe rozwiązania o ile działają dobrze.