Unit of work should not be confused with Work unit.
Unit of work should not be confused with Joule.
A unit of work[1] is a behavioral pattern in software development. Martin Fowler has defined it as everything one does during a business transaction which can affect the database. When the unit of work is finished, it will provide everything that needs to be done to change the database as a result of the work.
A unit of work encapsulates one or more code repositories[de] and a list of actions to be performed which are necessary for the successful implementation of self-contained and consistent data change. A unit of work is also responsible for handling concurrency issues,[2] [3] and can be used for transactions and stability patterns.[de]