POC: Use transaction manager instead of Reader/Writer #5525
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a proof-of-concept of a refactor to the db.Reader/db.Writer interface we use across the project to manage access to the database. The primary goal is to make it much harder to accidentally use nested DB connections. A secondary goal is to pave the way for distinguishing between read and write operations such that in the future it could be easier to support read replica databases.
The first commit adds the
TransactionManager
interface, which exposes functions for creating transactions and single read and write operations. The separation between DoRoTx and DoRwTx is so that we could implement read replica logic without having to do the work to separate these out logically at a later time.The second commit switches the alias repository to using the
TransactionManager
instead of thedb.Reader
anddb.Writer
directly.