MongoDB je dokumentno orijentisan, NoSQL sistem baza podataka koji je promijenio pravila igre za mnoge programere, omogućavajući im da brže grade aplikacije nego s relacijskim bazama podataka. Međutim, MongoDB je napustio svoje korijene otvorenog koda, prešavši na SSPL licencu, što ga čini neupotrebljivim za mnoge komercijalne i open-source projekte.
Kao odgovor na to, predstavljen je MangoDB, što je savršeno rješenje za one koji traže iskustvo u razvoju MongoDB-a, jer MangoDB nudi sloj s implementacijom dokumentno orijentiranog MongoDB protokola koji radi preko PostgreSQL-a.
Cilj projekta je omogućiti migraciju MongoDB aplikacija na PostgreSQL i potpuno otvoreni softverski paket. Kod je napisan u Go programskom jeziku i distribuiran pod Apache 2.0 licencom.
Važno je napomenuti da je MongoDB sistem za upravljanje bazama podataka orijentisan na dokumente koji se može implementirati na neograničen broj računara i ne zahtijeva unaprijed definiranu shemu podataka. To mu omogućava da obrađuje strukturirane objekte u BSON (binarni JSON) formatu bez unaprijed definirane sheme.
Drugim riječima, ključevi se mogu dodati u bilo kojem trenutku "u hodu", bez rekonfiguracije baze podataka. Podaci imaju oblik dokumenata, koji se pohranjuju u kolekcije - kolekcije koje sadrže bilo koji broj dokumenata. Kolekcije su poput tabela, a dokumenti su poput zapisa u relacijskim bazama podataka.
Server-Side Public License (SSPL) je vlasnička softverska licenca koju je razvio MongoDB Inc. Prema MongoDB-u, SSPL se zasniva na AGPL3 licenci, uz dodatak novog odjeljka koji "jasno i eksplicitno postavlja uslove za distribuciju licenciranog programa kao usluge treće strane", zahtijevajući da sav izvorni kod bude dostupan kada se softver stavi na raspolaganje javnosti kao dio usluge.
Ova promjena je implementirana u oktobru 2018. godine, nakon čega su Debian, Red Hat Enterprise Linux i Fedora distribucije naknadno napustile MongoDB, navodeći zabrinutost zbog SSPL-a. Amazon je pokrenuo kompatibilnu, ali vlasničku uslugu pod nazivom DocumentDB, i činilo se da SSPL nije uspio povećati prihode MongoDB-a od clouda. Većini korisnika MongoDB-a nisu potrebne mnoge napredne funkcije koje MongoDB nudi, ali im je potrebno rješenje za bazu podataka otvorenog koda, i tu na scenu stupa MangoDB.
Srž našeg rješenja je proxy bez stanja, koji pretvara upite MongoDB protokola u SQL i koristi PostgreSQL kao mehanizam baze podataka. Bit će kompatibilan sa MongoDB drajverima i u mnogim slučajevima bi trebao raditi kao direktna zamjena za MongoDB.
MangoDB ima za cilj da postane de facto open-source alternativa MongoDB-u. MangoDB je open-source proxy koji prevodi MongoDB protokol upite u SQL i koristi PostgreSQL kao svoj mehanizam baze podataka. MangoDB će biti kompatibilan sa MongoDB drajverima i u mnogim slučajevima će funkcionirati kao direktna zamjena za MongoDB.
Program funkcionira kao proxy, prevodeći pozive MongoDB-a u SQL upite za PostgreSQL, koristeći PostgreSQL kao stvarnu pohranu. Projekt podržava MongoDB drajvere, ali je još uvijek u fazi prototipa i još uvijek ne podržava napredne funkcije MongoDB protokola, iako je već pogodan za prevođenje jednostavnih aplikacija.
Potreba da se izbjegne korištenje MongoDB DBMS-a može se pojaviti zbog prelaska projekta na neslobodnu SSPL licencu, koja je zasnovana na AGPLv3 licenci, ali nije otvorena, jer sadrži diskriminatorni zahtjev za isporuku pod SSPL-om ne samo kod same aplikacije, već i izvorni kod svih komponenti uključenih u pružanje usluga u oblaku.
Konačno, ako ste zainteresirani da saznate više o MangoDB-u, detalje možete pronaći na sljedećem linku.