A compact library for tracking and committing changes to your entities.
A compact library for tracking and committing atomic changes to your entities.
work
does the heavy lifting of tracking changes that your application makes
to entities within a particular operation. This is accomplished by using what we
refer to as a "work unit", which is essentially an implementation of the
Unit Of Work pattern popularized by Martin Fowler. With work units,
you no longer need to write any code to track, apply, or rollback changes
atomically in your application. This lets you focus on just writing the code
that handles changes when they happen.
For SQL datastores, also enjoy:
context.Context
with database/sql
.Ready to get moving? Head over to the Getting Started page in the wiki.
Version | Supported |
---|---|
V4 |
✅ |
V3 |
✅ |
V2 |
❌ |
V1 |
❌ |
Versions
1.x.x
and2.x.x
are no longer supported. Please upgrade to at least3.x.x+
to receive the latest and greatest features!
As of v3.0.0
, the project utilizes modules.
Prior to v3.0.0
, the project utilized dep
for dependency management.
In order to transition to modules gracefully, we adhered to the best practice recommendations authored by the Golang team.
Want to lend us a hand? Check out our guidelines for contributing.
We are rocking an Apache 2.0 license for this project.
Please check out our code of conduct to get up to speed how we do things.