# BoltDB Reviews
**Vendor:** BoltDB  
**Category:** [Key Value Databases](https://www.g2.com/categories/key-value-databases)  
**Average Rating:** 4.4/5.0  
**Total Reviews:** 18
## About BoltDB
BoltDB is an embedded key/value database for Go.




## BoltDB Reviews
  ### 1. Migrated Hoverfly backend from Redis to BoltDB to reduce dependencies

**Rating:** 4.5/5.0 stars

**Reviewed by:** Karolis R. | Senior Software Engineer, Computer Software, Small-Business (50 or fewer emp.)

**Reviewed Date:** January 12, 2016

**What do you like best about BoltDB?**

Super fast mmap implementation where operating system caches everything. Reduced dependencies and persistence storage. It also enables transactions and due to the fact that it's embedded - no connection pool. 

**What do you dislike about BoltDB?**

Lack of scalability options, it can bring you up to speed very quickly and let you process a lot of stuff, but when you need to scale horizontally - you will have to look for other projects. 

**Recommendations to others considering BoltDB:**

Check out caveats and limitations, don't use byte slices blindly, write those bytes to buffer before ending transaction. That's not very clear through the documentation, just keep that in mind.

Also, understand that it's not a silver bullet for everything, if you need to something that has schema and relations - bolt is not for you. If you are working on a web app that will be deployed to container and then automatically scaled - bolt is not for you. Design better interfaces in your application to easily change backends, that will help you later.

**What problems is BoltDB solving and how is that benefiting you?**

Service virtualization, capturing/virtualizing/synthesizing external APIs. BoltDB helped to make our tool Hoverfly truly autonomous with zero dependencies, very easy to deploy and achieve superb performance. Migrating from Redis to BoltDB increased requests per second from ~400 to ~850.

  ### 2. Bolt offers an extremely simple database solution for lightweight and embedded purposes.

**Rating:** 4.0/5.0 stars

**Reviewed by:** Christian W. | Dev Ops / Full Stack Engineer / M2M Embedded Developer, Renewables & Environment, Mid-Market (51-1000 emp.)

**Reviewed Date:** January 21, 2016

**What do you like best about BoltDB?**

My favourite feature is how small you can keep your database, which is great for embedded linux systems where storage is a premium. The fact that it is written in pure Go, and the stack I wrote was also pure Go was great, so I didn't have to struggle with cross-compilation of something written in C-with-Go-binding.

**What do you dislike about BoltDB?**

The limitation of 1 process per database actively running means you can't use it to simply share state between multiple active applications, which hampered my original software stack design.

**Recommendations to others considering BoltDB:**

I cannot speak to the side of scalabilty or performance under extreme load conditions, but for my purpose of using it for a low-spec, storage sparse, embedded platform it worked well and was nice and easy to setup.
For that purpose, I would definitely recommend BoltDB, and use it again myself.

**What problems is BoltDB solving and how is that benefiting you?**

The business case was to build an embedded Linux software stack for an IoT'esque M2M device to record data off various pieces of hardware, and push it back over the wire to cloud servers.
The benefits of having an embedded database meant not having to draft up convoluted ideas on how to store data that has yet to be sent, for example in the case of communication failure of the GSM network, or even device failure due to loss of power. This made it simple to "pick up and go" from the last known point without having to deserialize data from disk, mung it together, pack it up and sent it over the wire.

  ### 3. Using boltdb as a database source for a generic dynamic api

**Rating:** 4.0/5.0 stars

**Reviewed by:** Osiloke E. | CTO, Computer & Network Security, Small-Business (50 or fewer emp.)

**Reviewed Date:** January 14, 2016

**What do you like best about BoltDB?**

When i started with go (as an alternative to django/python and its, you know problems) while developing my various apps. I needed a database but i'm broke :), because i quit my job and moved to africa to, you know, bill gates charity it up. I needed to create something quick to attract investors. I did not want to spend any more dollars(i had no more) and i needed to create something real quick as a demo for my potential investors. Bolt was to the rescue. I was able to create my own parse api quickly and fast.
Bolt allows (in addition to a layer i created) to quickly prototype apps that run locally. 
It allowed me to create a cache system for my free wifi system (based on ledisdb based on boltdb). etc

**What do you dislike about BoltDB?**

Well, what i dislike about boltdb allowed me to create a solution for it. I needed relationships, so i created a library that provides that feature. At the end of the day i think i learned more about databases by adding that feature. 

**Recommendations to others considering BoltDB:**

It is a useful tool in prototyping and can actually be used in production based on your needs. I believe cockroachdb is using it and also ledisdb which i use for caching.

**What problems is BoltDB solving and how is that benefiting you?**

Well, i had initially wanted to create a service similar to parse api that i could run locally in Nigeria. I ended up using rethinkdb as my primary database source but boltdb helped me in the initial prototyping stages, It opens me up to indexing based in the form of bleve search. It has allowed me to prototype new apps quickly. For eg, i used bolt and bleve to prototype a traffic monitoring app.

  ### 4. Painless Pure Go Persistence Solution

**Rating:** 4.5/5.0 stars

**Reviewed by:** Peter E. | Software Engineer, Information Technology and Services, Enterprise (> 1000 emp.)

**Reviewed Date:** January 13, 2016

**What do you like best about BoltDB?**

A pure go persistence solution that supports transactions and is both well documented and reliable.  

It's documentation and easy to use API make it fairly easy to embed persistence into your go applications. BoltDB provides fully serializable ACID transactions which guarantees reliability in processing. It also provides range scanning functionality  through items in order via it's bucket Cursor method as well as provides prefix searching capabilities. BoltDB also allows for easy implementation of hot backups as well as grabbing of statistics snapshots.

**What do you dislike about BoltDB?**

While being a key-value allows BoltDB a lower learning curve than most relational DBs, it also means you have to write the logic to sufficiently make use of your data. Also, being a new kid on the block (Go as well), usually you have to sell it to project owners.

**Recommendations to others considering BoltDB:**

BoltDB is a fast and reliable persistence solution already in use at companies like Heroku and Shopify. The project author is active on Github and the repo has gathered a community around it. As far as Golang key-value pairs data storage goes, BoltDB is the only option in my opinion.

**What problems is BoltDB solving and how is that benefiting you?**

I use boltdb to provide persistence to custom devops apps and integrating it into in-house microservices for survivability. Since it's written in Go, custom apps are still single static binaries, which I can just give a user an executable and still enjoy reliable persistence.

  ### 5. BoltDB

**Rating:** 4.0/5.0 stars

**Reviewed by:** George M. | Software Engineer, Broadcast Media, Small-Business (50 or fewer emp.)

**Reviewed Date:** January 13, 2016

**What do you like best about BoltDB?**

Simplicity of the libraries API. The fact that it is an embedded database, which uses a file for storage makes portability and reuse between my applications. Very quick as long as you're using it for the right purpose. The Bolt team are very open about the caveats of Bolt.

**What do you dislike about BoltDB?**

Difficult to give much constructive criticism. For small applications or byte ordered data, bolt is your tool. I imagine if you're going to plug any large volume of data through it, I would just ensure that you need your data to be stored sequentially. I wouldn't use it necessarily as some kind of cache layer, due to IO and having to implement some kind of eviction policy.

**Recommendations to others considering BoltDB:**

Read the caveats. Make sure you're solving a problem that suits BoltDBs capabilities. 

**What problems is BoltDB solving and how is that benefiting you?**

I used BoltDB to build information from docker container builds. The output of those tasks, when they happened and to store configuration for performing a build. I have also investigated using it as a general purpose content storage solution. I think more investigation is required for bolt as a storage layer, however, I am optimistic. I think the bleve projects use of BoltDB for storing searchable indexes to enable full-text search, is a promising example of Bolts flexibility. 

  ### 6. Abandoned after difficulty with the Golang API

**Rating:** 2.0/5.0 stars

**Reviewed by:** Verified User in Internet | Small-Business (50 or fewer emp.)

**Reviewed Date:** January 18, 2016

**What do you like best about BoltDB?**

Entirely written in Go, meaning that it's easy for me to dig in to the internals if I had an issue. Offers an interesting alternative to leveldb.

**What do you dislike about BoltDB?**

The golang API is different from a other databases such as leveldb. Refactoring my code to use boltdb instead of leveldb was painful, presumably the resulting performance boost for using the batch API on a small database was negligible/nil.

The documentation also doesn't make it immediately clear on how best to handle state when using closures.

**Recommendations to others considering BoltDB:**

P.S. "Confirm yourself as a user by uploading a screenshot showing you logged into this product." , what? who wrote this survey?

**What problems is BoltDB solving and how is that benefiting you?**

Geographic search engine. In the end I opted for ledisdb because it abstracts many APIs in to a single API, meaning that I only needed to implement a single API and then test on multiple backends.

P.S. I'm not sure about the options in the dropdown below, so I'm selecting 'User', none of these are software developer roles!?

  ### 7. BoltDB Enabled Parallel Database Programming in Go

**Rating:** 4.5/5.0 stars

**Reviewed by:** Verified User in Higher Education | Enterprise (> 1000 emp.)

**Reviewed Date:** January 12, 2016

**What do you like best about BoltDB?**

Bolt is an impressive package. I like the fact that it is written in pure Go as I am a software engineer on a team that primarily uses Go for development. I know that Bolt stores its data in a B+ tree data store, which I'm sure is one reason why it has great performance.  

**What do you dislike about BoltDB?**

Although my experience was mostly positive, parts of the setup process required more time than expected. When inserting data into the database initially, it took many hours to build a relatively small database. We later found that sorting the data before adding it the database made all the difference and the time to create the database dropped from hours to a couple of minutes. 

Another observation is that the database grows in size when adding files (as expected), but it never seemed to shrink in size when files were deleted. 

**Recommendations to others considering BoltDB:**

To developers...
Read the documentation well
Sort data before inserting into the database

**What problems is BoltDB solving and how is that benefiting you?**

My primary experience using Bolt was to build a parallel database optimized for read performance. The project I built had the Bolt database stored on 32 nodes. When a query is run, the database is divided among the available nodes and then each node queries its part of the database and the results of node are aggregated together. 

  ### 8. Great for quick lookups and simple application storage

**Rating:** 5.0/5.0 stars

**Reviewed by:** Dan E. | Senior Software Developer, Human Resources, Enterprise (> 1000 emp.)

**Reviewed Date:** January 13, 2016

**What do you like best about BoltDB?**

I like that it's easy to drop into an existing Go project and get started quickly.  I like the examples on the Github site.  I like that you don't have to install a full database installation to store / fetch / lookup data.

**What do you dislike about BoltDB?**

I don't like that data sharing isn't straight forward.  I don't like that clustering (while it might be overkill for most) is a no-go.  I don't like that moving data from one file to another isn't straightforward -- but I like that it is doable with tools like https://github.com/hashicorp/raft-boltdb

**What problems is BoltDB solving and how is that benefiting you?**

Data lookups / data caching / simple application storage.  I like the ease of use.  

  ### 9. BoltDB Review

**Rating:** 4.5/5.0 stars

**Reviewed by:** Wesley H. | Small-Business (50 or fewer emp.)

**Reviewed Date:** January 12, 2016

**What do you like best about BoltDB?**

BoltDB's portability on Windows/Mac/Etc.

**What do you dislike about BoltDB?**

Bucket iteration API. could be made simpler.

**Recommendations to others considering BoltDB:**

I recommend BoltDB as a lightweight embedded solution with all the features being cross platform on Mac, Windows and Linux.

**What problems is BoltDB solving and how is that benefiting you?**

By using BoltDB as a database for animation tracking, we can store up to 10,000+ key values inside the database without expecting a storage bottleneck for our users who install our program. It is almost seamless to use.

  ### 10. An easy-to-use embedded DB

**Rating:** 4.5/5.0 stars

**Reviewed by:** Verified User in Information Technology and Services | Small-Business (50 or fewer emp.)

**Reviewed Date:** February 08, 2016

**What do you like best about BoltDB?**

Bolt is really easy to use. It's written in go, so you don't need to install any dependencies to get it work - include Bolt to your source and you're ready.
Bolt supports transactions. Actually, you can't do anything without a transaction. Good for Bolt - it makes transactions very easy and transparent.
Though Bolt is a key-value storage, it supports nested collections (a.k.a. batches). It's a killer feature when you need to use namespaces.
Bolt is very good on workloads. 

**What do you dislike about BoltDB?**

Bolt is not good at write workloads.
Bolt increases DB size exponentially. You can get a big DB very fast.
Bolt uses memory-mapped files. This thing and exponentially growing DB makes Bolt a great memory eater.

**What problems is BoltDB solving and how is that benefiting you?**

I used to use Bolt for logs storage system.

  ### 11. Easy persistence for simple needs

**Rating:** 5.0/5.0 stars

**Reviewed by:** Verified User in Consumer Services | Small-Business (50 or fewer emp.)

**Reviewed Date:** January 20, 2016

**What do you like best about BoltDB?**

Bolt allows me to save data in a simple way in situations where no advanced operations are needed. It has no useless features and because of its internal B+ tree structure it's fast as a lightning.

**What do you dislike about BoltDB?**

I haven't stumbled upon anything I dislike. Everything seems logical and orthogonal.

**Recommendations to others considering BoltDB:**

Consider Bolt when you need persistence, you're open to seminiche products, Go is your language to go, NoSQL suits you and FOSS is the way to go.

**What problems is BoltDB solving and how is that benefiting you?**

Saving all the data of a proof-of-concept textboard project

  ### 12. Satisfied user

**Rating:** 5.0/5.0 stars

**Reviewed by:** Etienne B. | Self-employed Webdeveloper, Information Technology and Services, Small-Business (50 or fewer emp.)

**Reviewed Date:** January 13, 2016

**What do you like best about BoltDB?**

Simplicity; you can store any slice of bytes. 
Portability; you don't need a database service running. 

**What do you dislike about BoltDB?**

It often requires you to do a lot of serialization. 

**Recommendations to others considering BoltDB:**

If you plan to grow to more than one server, BoltDB might not be for you. You could use BoltDB, but it'd be wise to use a Go "interface" in case you ever need to replace BoltDB with something more scalable. 

**What problems is BoltDB solving and how is that benefiting you?**

Storing data without requiring a running database service. 

  ### 13. Excellent reliable goto key/value store

**Rating:** 5.0/5.0 stars

**Reviewed by:** Adrian L. | Co-Founder and CEO, Computer Software, Small-Business (50 or fewer emp.)

**Reviewed Date:** January 12, 2016

**What do you like best about BoltDB?**

BoltDB's simple API makes it fast and easy to get setup and allows you to get back to solving business problems.

**What do you dislike about BoltDB?**

Large bulk writes are slow, so the initial loading of the database with data can take a while but this is pointed out in the documentation and the reasons for that.

**What problems is BoltDB solving and how is that benefiting you?**

I have utilised BoltDB in several command line utilities that have required lightweight persistence. 

  ### 14. BoltDB tl;dr review

**Rating:** 5.0/5.0 stars

**Reviewed by:** Verified User in Hospital & Health Care | Small-Business (50 or fewer emp.)

**Reviewed Date:** January 12, 2016

**What do you like best about BoltDB?**

BoltDB has quick reads and is embedded, two things that have come to great value in several of my projects.

**What do you dislike about BoltDB?**

The API takes a little getting used to, but I understand why that's the route they took. There is a wrapper out there (I forget the name) that simplifies it.

**Recommendations to others considering BoltDB:**

If it fits your requirements and use case, then use it. It's a great key-value store.

**What problems is BoltDB solving and how is that benefiting you?**

I work in the medical industry and sometimes you just need to grab data quickly. BoltDB has helped achieve this early on in the development cycle. 

  ### 15. Nice K/V database

**Rating:** 3.5/5.0 stars

**Reviewed by:** Verified User in Computer Games | Mid-Market (51-1000 emp.)

**Reviewed Date:** January 12, 2016

**What do you like best about BoltDB?**

Simple structure
Easy to use with Golang based projects
Fast (well, every memory database is fast, but BoltDB made the best.

**What do you dislike about BoltDB?**

Nothing, I think that BoltDB sticks to KISS( keep it simple and stupid)

**Recommendations to others considering BoltDB:**

If you looking for K/V db with Golang, Boltdb is your choice.

**What problems is BoltDB solving and how is that benefiting you?**

We use Golang builtin "map" + "gob" to solve K/V storage, however self made database go slower when data grown.
BoltDB is the database meet our requirement, no more no less.

  ### 16. Simple and fast pure Go key/value database

**Rating:** 5.0/5.0 stars

**Reviewed by:** Cesar G. | Full Stack Developer, Program Development, Small-Business (50 or fewer emp.)

**Reviewed Date:** January 12, 2016

**What do you like best about BoltDB?**

Fast and simple. Don't require a full db

**What do you dislike about BoltDB?**

The footprint of the code could be smaller 

**What problems is BoltDB solving and how is that benefiting you?**

I used as a quick and efficient way to build a configuration server where múltipla systems can read parameters from a central point.

  ### 17. Simplifier

**Rating:** 5.0/5.0 stars

**Reviewed by:** Mohamed C. | Full Stack Developer, Information Technology and Services, Small-Business (50 or fewer emp.)

**Reviewed Date:** January 22, 2016

**What do you like best about BoltDB?**

portability and simplicity to setup in dev process

**What do you dislike about BoltDB?**

nothing, but would love to see more active dev

**What problems is BoltDB solving and how is that benefiting you?**

Create a simple appication that host emergency numbers 

  ### 18. embedded key value storage

**Rating:** 3.5/5.0 stars

**Reviewed by:** Verified User in Information Technology and Services | Small-Business (50 or fewer emp.)

**Reviewed Date:** January 13, 2016

**What do you like best about BoltDB?**

Simplicity, easy to manage, easy to use. Embedded solution, platform to build distributed storage systems on top of it.

**What do you dislike about BoltDB?**

Some API inconvenience, I had to write little wrapper on top of boltdb. Too simple functionality, API extension is required.


**What problems is BoltDB solving and how is that benefiting you?**

To build fault tolerant distributed systems with no single point of failure. The benefit is to embed key-value storage into service node with file persistence. 



- [View BoltDB pricing details and edition comparison](https://www.g2.com/products/boltdb/reviews?section=pricing&secure%5Bexpires_at%5D=2026-05-15+07%3A11%3A22+-0500&secure%5Bsession_id%5D=4453e46c-ec01-486b-a805-fe9a81d8ba73&secure%5Btoken%5D=1b145ac955912f2ea9c590e7a4667e08326a69bcfcd3831059c208c1a83b9658&format=llm_user)

## BoltDB Features
**Data Management**
- Data Model
- Data Types

**Availability**
- Auto Sharding
- Auto Recovery
- Data Replication

**Security**
- Audit Logs
- Encryption

**Support**
- Multi-Model
- Operating Systems

**Database Features**
- Storage
- Availability
- Stability
- Scalability
- Security
- Data Manipulation
- Query Language

## Top BoltDB Alternatives
  - [Redis Software](https://www.g2.com/products/redis-software/reviews) - 4.5/5.0 (130 reviews)
  - [Couchbase](https://www.g2.com/products/couchbase/reviews) - 4.3/5.0 (142 reviews)
  - [Aerospike](https://www.g2.com/products/aerospike/reviews) - 4.4/5.0 (80 reviews)

