diff --git a/NetChris.Core/Patterns/IUnitOfWork.cs b/NetChris.Core/Patterns/IUnitOfWork.cs
new file mode 100644
index 0000000..d666c0f
--- /dev/null
+++ b/NetChris.Core/Patterns/IUnitOfWork.cs
@@ -0,0 +1,29 @@
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace NetChris.Core.Patterns;
+
+///
+/// Presents a unit of work interface to coordinate a unit-of-work pattern operation against a data store.
+///
+///
+///
+/// There is no prescribed implementation of this of course. However the primary use of this will be to wrap the operations
+/// of an Entity Framework DbContext. And even though the DbContext's SaveChanges/Async operations constitute a unit
+/// of work in and of themselves, it's important to have a separate handle on the over-arching unit of work for:
+///
+/// - Having an abstraction to use for testing in concert with repository abstractions.
+/// - Handle the common exceptions that can occur when saving changes to the database, and then wrap them in well-known exceptions.
+/// - Allow the ability to save/commit the unit of work without needing to reference the DbContext
+///
+///
+///
+public interface IUnitOfWork
+{
+ ///
+ /// Commit the unit of work
+ ///
+ /// The cancellation token
+ /// A task that represents the asynchronous save operation. The task result contains the number of state entries written to the database.
+ Task SaveChangesAsync(CancellationToken cancellationToken = default);
+}
\ No newline at end of file