T module = moduleAndContext.first();
C context = moduleAndContext.second();
try (Transaction tx = database.beginTx()) {
C newContext = module.doSomeWork(context, database);
repository.persistModuleMetadata(module, new DefaultTimerDrivenModuleMetadata(newContext));
moduleContexts.put(module, newContext);
tx.success();
}
}