As a general thought process about this post, I think it's really good.  But I think that there are places where more Go theory and less NSQ theory should be put forth.  The reason is that the product (NSQ) can be show cased using the features it provides as examples, the only thing necessary to explain the Go theory is context.  Since the post version is for the Go advent calendar, it should focus more heavily on Go (while also still providing some level of NSQ reference).

On the other hand, as an internals document, I think this post lacks specificity in most cases.  For the post, the logging section makes sense as a theory bit.  But as in internals doc, it makes no reference to methodology of when things should be considered as ERRORs as opposed to FATALs (for example).  And in an NSQ internals doc, there should be some discussion about client output buffers (at least in the TCP  section).  Lastly, as an internals document, there should be more references to function names for people to follow along.