For connection B to see the changes of connection A, and barring all special modes of operation, the following sequence of events has to occur in excatly this order: 1) Connection A has to COMMIT it's transaction (implicitly or explicitly) 2) Connection B has to BEGIN it's transaction (implicitly or explicitly) This hold true independently of whether the connections are readers or writers. Thus, any reader that starts a transaction before the writer commits it's transaction will see the state of the database as it was before the writer started its transaction - and will continue to do so until it starts a new transaction itself. What you are seeing is interference from the go wrapper, which is second guessing when to BEGIN and COMMIT transactions.