Atomic Transaction Posting in Go: Getting Balance Invariants Right Under Concurrency