What do you like best?
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?
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 the product
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 business problems are you solving with the product? What benefits have you realized?
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.