BoltDB je open source databáze postavená čistě na jazyce Go. Je navržena tak, aby ukládala data na namapovaný paměťový soubor. Jedná se o Go balíček, který není potřeba instalovat předtím, nežli se vývojář pustí do kódování. To významným způsobem šetří čas s instalací a nastavováním databáze a řešením konfiguračních problémů, uživatelů a přístupů. Tyto problémy v Boltu nejsou, nemá uživatele, nastavení, pouze název souboru.

Bolt není relační databáze. Jedná se o úložiště na principu klíč-hodnota. Úložný prostor v Boltu je rozdělený do bucketů. Bucket je soubor dvojic klíč-hodnota, podobně jako v Go mapě. Název bucketu, klíče a hodnoty jsou typu byte. Buckety obsahuje další buckety.

Všechny operace čtení nebo zápisu do Bolt databáze musí být řešeny za pomoci transakcí. Můžete mít libovolný počet čtení v operacích, které jen čtou, ale jen jednu operaci, která zapisuje v jednu danou dobu. Operace, které čtou, si udrží konzistentní pohled i v době zápisu.

Výhody použití Boltu

  • Rychlé zprovoznění. Oproti konvenčním databázím není potřeba instalovat a konfigurovat. Není potřeba řešit uživatele a přístupy, stačí pouze jeden název souboru.
  • Rychlejší ukládání menších souborů. Oproti Badgeru má Bolt rychlejší uložení například u souboru o velikosti 128B.
  • Čistá a dobře dokumentovaná API.
  • Libovolný počet operací, které čtou data. Zároveň si databáze udržuje v době zápisu konzistentní pohled pro operace, které čtou data.
  • Podpora ACID transakcí.

Nevýhody použití Boltu

  • Pomalé načítání dat. Badger je rychlejší v načítání dat nežli Bolt.
  • Latence čtení. Bolt má horší latenci pro čtení datových souborů nežli například Badger.
  • Omezení na pouze jednu operaci zapisující do databáze v daný okamžik.