package contract // DataManager holds the methods that manipulates the main data. type DataManager interface { repoManager Begin() (TransactionManager, error) Close() error } // TransactionManager holds the methods that manipulates the main // data, from within a transaction. type TransactionManager interface { repoManager Rollback() error Commit() error }