diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/api/AppLifecycleBean.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/api/AppLifecycleBean.java
new file mode 100644
index 0000000000000000000000000000000000000000..0f5cfe1b086c5ede00c3023b734ff81387c31f99
--- /dev/null
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/api/AppLifecycleBean.java
@@ -0,0 +1,28 @@
+package de.unikoblenz.fgbks.api;
+
+import de.unikoblenz.fgbks.core.dmn.verification.DmnVerificationService;
+import io.quarkus.runtime.ShutdownEvent;
+import io.quarkus.runtime.StartupEvent;
+import javax.enterprise.context.ApplicationScoped;
+import javax.enterprise.event.Observes;
+import javax.inject.Inject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@ApplicationScoped
+public class AppLifecycleBean {
+
+  private static final Logger LOGGER = LoggerFactory.getLogger("AppLifecycle");
+
+  @Inject
+  DmnVerificationService dmnVerificationService;
+
+  void onStart(@Observes StartupEvent ev) {
+    LOGGER.info("The dmn verification application is starting...");
+    dmnVerificationService.initVerifier();
+  }
+
+  void onStop(@Observes ShutdownEvent ev) {
+    LOGGER.info("The dmn verification application is stopping...");
+  }
+}
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/DmnVerificationService.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/DmnVerificationService.java
index 0d9ad88f06190b295e894ce2ba1687dd00ac7eca..7c59e3e2257216333ba47503063971830a4de7f3 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/DmnVerificationService.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/DmnVerificationService.java
@@ -1,5 +1,6 @@
 package de.unikoblenz.fgbks.core.dmn.verification;
 
+import de.unikoblenz.fgbks.base.utils.UniqueIdGenerator;
 import de.unikoblenz.fgbks.core.dmn.utils.DmnService;
 import de.unikoblenz.fgbks.core.dmn.verification.result.VerifierResult;
 import de.unikoblenz.fgbks.core.dmn.verification.result.VerifierResultSet;
@@ -104,7 +105,6 @@ public class DmnVerificationService {
    * @return a list of {@link VerificationType}s
    */
   public List<VerificationType> getVerificationTypes() {
-    initVerifier();
     return Collections.unmodifiableList(verificationTypes);
   }
 
@@ -115,11 +115,13 @@ public class DmnVerificationService {
    * @return a list of {@link ClassificationType}s
    */
   public List<ClassificationType> getVerificationClassificationTypes() {
-    initVerifier();
     return Collections.unmodifiableList(verificationClassificationTypes);
   }
 
-  private void initVerifier() {
+  /**
+   * Init the verification service instance.
+   */
+  public void initVerifier() {
     if (executor == null || verifierClasses == null) {
       LOGGER.info("Init verification.");
       LOGGER.info("Creating thread pool with " + maxThreads + " threads.");
@@ -161,12 +163,13 @@ public class DmnVerificationService {
   }
 
   private Map<Class<? extends AbstractDmnVerifierConfig>, AbstractDmnVerifierConfig> getConfigs(
-      String dmnXml) {
+      String dmnXml, long verificationProcessId) {
     Map<Class<? extends AbstractDmnVerifierConfig>, AbstractDmnVerifierConfig> map =
         new ConcurrentHashMap<>();
     map.put(
         DefaultConfiguration.class,
         DefaultConfiguration.getBuilder()
+            .withVerificationProcessId(verificationProcessId)
             .withDmnObjectContainer(dmnService.getDmnServiceFromXml(dmnXml))
             .build());
     return map;
@@ -174,12 +177,15 @@ public class DmnVerificationService {
 
   private VerifierResultSet generateWithFilter(
       String dmnXml, String typeName, String classificationName) {
-    initVerifier();
+    long verificationProcessId = UniqueIdGenerator.getNextId();
+    LOGGER.info("Start verification process. Id: " + verificationProcessId);
+    LOGGER.info("Parsing dmn. Id: " + verificationProcessId);
     Validate.notNull(dmnXml);
+    LOGGER.debug(dmnXml);
     Map<Class<? extends AbstractDmnVerifierConfig>, AbstractDmnVerifierConfig> configs =
-        getConfigs(dmnXml);
+        getConfigs(dmnXml, verificationProcessId);
     Builder resultBuilder = VerifierResultSet.getBuilder();
-
+    LOGGER.info("Looking for verifiers. Id: " + verificationProcessId);
     List<Future<VerifierResult>> results = new ArrayList<>(verifierClasses.size());
 
     for (Class<?> verifierClass : verifierClasses) {
@@ -214,6 +220,7 @@ public class DmnVerificationService {
             e.printStackTrace();
           }
         });
+    LOGGER.info("Verification finished. Id: " + verificationProcessId);
 
     return resultBuilder.build();
   }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/AbstractVerifier.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/AbstractVerifier.java
index 62c8e1fb96a9e2e0cad24b26f8dc307e3665f127..528b700a04e3fd77c962dc12cd081f82d32382b5 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/AbstractVerifier.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/AbstractVerifier.java
@@ -78,7 +78,11 @@ public abstract class AbstractVerifier implements Verifier {
   }
 
   private VerifierResult verify() {
-    LOGGER.info("Starting verification " + getVerificationType().getName());
+    LOGGER.info(
+        "Starting verification "
+            + getVerificationType().getName()
+            + " Id: "
+            + this.verifierConfig.getVerificationProcessId());
     StopWatch watch = new StopWatch();
     watch.start();
     doVerification();
@@ -87,9 +91,10 @@ public abstract class AbstractVerifier implements Verifier {
     LOGGER.info(
         "Verification "
             + getVerificationType().getName()
-            + " finished. "
-            + "Time Elapsed: "
-            + executionTime
+            + " finished. Id: "
+            + this.verifierConfig.getVerificationProcessId()
+            + " Time Elapsed: "
+            + +executionTime
             + " ms");
     return resultBuilder.withExecutionTime(executionTime).build();
   }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/config/AbstractDmnVerifierConfig.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/config/AbstractDmnVerifierConfig.java
index a606c58130f52d9ca15ff64b53b2883d3e24aae6..a9df7952fd76aac94853383e07d7ca635ffbb8ef 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/config/AbstractDmnVerifierConfig.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/config/AbstractDmnVerifierConfig.java
@@ -7,6 +7,7 @@ public abstract class AbstractDmnVerifierConfig {
 
   private HashMap<String, Object> configurationProperties;
   private HashMap<String, Class<?>> configurationTypes;
+  protected long verificationProcessId;
 
   public <E> E getConfiguration(String key) {
     return (E) configurationProperties.getOrDefault(key, null);
@@ -16,6 +17,10 @@ public abstract class AbstractDmnVerifierConfig {
     return configurationTypes.get(key);
   }
 
+  public long getVerificationProcessId() {
+    return verificationProcessId;
+  }
+
   protected AbstractDmnVerifierConfig withConfigurationProperty(String key, Object value) {
     configurationProperties.put(Validate.notNull(key), Validate.notNull(value));
     configurationTypes.put(key, value.getClass());
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/config/DefaultConfiguration.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/config/DefaultConfiguration.java
index 6a9f07475543d6c20447de0c6b5470c66f375895..a232e311c74859d7c299f13716e66c731e6e6f3e 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/config/DefaultConfiguration.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/config/DefaultConfiguration.java
@@ -11,7 +11,6 @@ public class DefaultConfiguration extends AbstractDmnVerifierConfig {
   public static final String KEY_SHARED_MAP = "sharedMap";
 
   protected DefaultConfiguration() {
-    super();
     super.withConfigurationProperty(KEY_SHARED_MAP, new ConcurrentHashMap<>(1024));
   }
 
@@ -26,6 +25,11 @@ public class DefaultConfiguration extends AbstractDmnVerifierConfig {
       return this;
     }
 
+    public Builder withVerificationProcessId(long verificationProcessId) {
+      value.verificationProcessId = verificationProcessId;
+      return this;
+    }
+
     @Override
     protected void validate() {
       super.validate();