// generate a uuid to be used later on if rollback is required
UUID methodInvocationUUID = UUIDGenerator.generateUUID();
// run through the limiter strategy chain and get the conclusion
LimiterStrategyConclusion conclusion = limiterStrategyChain.hasLimitBeenExceededChain(methodGroupName, methodInvocationUUID,
joinPoint.getArgs());
// if limit is not exceeded call the method and do a post invocation clean up where needed
if (!conclusion.getHasLimitBeenExceeded()) {
logger.trace("About to run method " + methodSignature.toString());
try {
Object obj = joinPoint.proceed(joinPoint.getArgs());
logger.trace("Finished running " + methodSignature.toString());
return obj;