Summary
In this chapter, we covered a lot of ground. We learned different techniques to gracefully shut down programs using signaling channels, which is especially important when our code has some work to do before it can exit. We saw that deferring the reporting of fatal errors at the start of our program can give our other deferred functions a chance to execute before the process ends.
We also discovered how easy it is to interact with MongoDB using the mgo package and how to use BSON types when describing concepts for the database. The bson.M alternative to map[string]interface{} helps us keep our code more concise while still providing all the flexibility we need when working with unstructured or schemaless data.
We learned about message queues ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access