diff --git a/.idea/libraries/Maven__com_cwbase_logback_redis_appender_1_1_6.xml b/.idea/libraries/Maven__com_cwbase_logback_redis_appender_1_1_6.xml
new file mode 100644
index 0000000..53d5a43
--- /dev/null
+++ b/.idea/libraries/Maven__com_cwbase_logback_redis_appender_1_1_6.xml
@@ -0,0 +1,13 @@
+
+  
+    
+      
+    
+    
+      
+    
+    
+      
+    
+  
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml b/.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml
new file mode 100644
index 0000000..bc7d7fd
--- /dev/null
+++ b/.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml
@@ -0,0 +1,13 @@
+
+  
+    
+      
+    
+    
+      
+    
+    
+      
+    
+  
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__jakarta_persistence_jakarta_persistence_api_2_2_3.xml b/.idea/libraries/Maven__jakarta_persistence_jakarta_persistence_api_2_2_3.xml
new file mode 100644
index 0000000..c11957d
--- /dev/null
+++ b/.idea/libraries/Maven__jakarta_persistence_jakarta_persistence_api_2_2_3.xml
@@ -0,0 +1,13 @@
+
+  
+    
+      
+    
+    
+      
+    
+    
+      
+    
+  
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__jakarta_validation_jakarta_validation_api_2_0_2.xml b/.idea/libraries/Maven__jakarta_validation_jakarta_validation_api_2_0_2.xml
new file mode 100644
index 0000000..e66afb9
--- /dev/null
+++ b/.idea/libraries/Maven__jakarta_validation_jakarta_validation_api_2_0_2.xml
@@ -0,0 +1,13 @@
+
+  
+    
+      
+    
+    
+      
+    
+    
+      
+    
+  
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_1_5_Final.xml b/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_1_5_Final.xml
new file mode 100644
index 0000000..6d045ad
--- /dev/null
+++ b/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_1_5_Final.xml
@@ -0,0 +1,13 @@
+
+  
+    
+      
+    
+    
+      
+    
+    
+      
+    
+  
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_1_Final.xml b/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_1_Final.xml
new file mode 100644
index 0000000..0b76247
--- /dev/null
+++ b/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_1_Final.xml
@@ -0,0 +1,13 @@
+
+  
+    
+      
+    
+    
+      
+    
+    
+      
+    
+  
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_validation_2_3_1_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_validation_2_3_1_RELEASE.xml
new file mode 100644
index 0000000..559d806
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_validation_2_3_1_RELEASE.xml
@@ -0,0 +1,13 @@
+
+  
+    
+      
+    
+    
+      
+    
+    
+      
+    
+  
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_data_spring_data_redis_2_2_6_RELEASE.xml b/.idea/libraries/Maven__org_springframework_data_spring_data_redis_2_2_6_RELEASE.xml
new file mode 100644
index 0000000..86ebc51
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_data_spring_data_redis_2_2_6_RELEASE.xml
@@ -0,0 +1,13 @@
+
+  
+    
+      
+    
+    
+      
+    
+    
+      
+    
+  
+
\ No newline at end of file
diff --git a/src/main/java/com/release11/klaus/model/constraints/HttpCode.java b/src/main/java/com/release11/klaus/model/constraints/HttpCode.java
new file mode 100644
index 0000000..05c6a20
--- /dev/null
+++ b/src/main/java/com/release11/klaus/model/constraints/HttpCode.java
@@ -0,0 +1,19 @@
+package com.release11.klaus.model.constraints;
+
+import javax.validation.Constraint;
+import javax.validation.Payload;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+
+@Target({ ElementType.FIELD})
+@Retention(RetentionPolicy.RUNTIME)
+@Constraint(validatedBy = HttpCodeValidation.class )
+public @interface HttpCode {
+    String message() default "must be a valid http code";
+
+    Class>[] groups() default { };
+    Class extends Payload>[] payload() default { };
+}
diff --git a/src/main/java/com/release11/klaus/model/constraints/HttpCodeValidation.java b/src/main/java/com/release11/klaus/model/constraints/HttpCodeValidation.java
new file mode 100644
index 0000000..57bbd62
--- /dev/null
+++ b/src/main/java/com/release11/klaus/model/constraints/HttpCodeValidation.java
@@ -0,0 +1,28 @@
+package com.release11.klaus.model.constraints;
+
+import com.release11.klaus.repository.MockedResponseRepository;
+import org.springframework.http.HttpStatus;
+
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+import java.util.EnumSet;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+public class HttpCodeValidation implements ConstraintValidator {
+    private Set allowedValues;
+
+    @Override
+    public void initialize(HttpCode targetEnum) {
+        allowedValues = Stream.of(HttpStatus.values())
+                .map(HttpStatus::value)
+                .collect(Collectors.toSet());
+    }
+
+    @Override
+    public boolean isValid(Integer integer, ConstraintValidatorContext context) {
+        return allowedValues.contains(integer);
+    }
+}
diff --git a/src/main/java/com/release11/klaus/repository/LogsRepository.java b/src/main/java/com/release11/klaus/repository/LogsRepository.java
new file mode 100644
index 0000000..bf803bc
--- /dev/null
+++ b/src/main/java/com/release11/klaus/repository/LogsRepository.java
@@ -0,0 +1,12 @@
+package com.release11.klaus.repository;
+
+import com.release11.klaus.utilis.BusinessKey;
+import org.springframework.stereotype.Repository;
+
+import java.time.ZonedDateTime;
+import java.util.List;
+
+@Repository
+public interface LogsRepository {
+    String getLogsByBusinessKeys(List businessKeys, ZonedDateTime zonedDateTime);
+}
diff --git a/src/main/java/com/release11/klaus/utilis/BusinessKey.java b/src/main/java/com/release11/klaus/utilis/BusinessKey.java
new file mode 100644
index 0000000..d647c75
--- /dev/null
+++ b/src/main/java/com/release11/klaus/utilis/BusinessKey.java
@@ -0,0 +1,16 @@
+package com.release11.klaus.utilis;
+
+import lombok.AllArgsConstructor;
+
+@AllArgsConstructor
+public enum BusinessKey {
+    INTERFACE_NAME("interfaceName"),
+    CLIENT_UUID("clientUUID"),
+    MESSAGE_ID("messageId");
+
+    private final String phrase;
+
+    public String getReasonPhrase() {
+        return this.phrase;
+    }
+}
diff --git a/src/main/java/com/release11/klaus/utilis/TrackingClient.java b/src/main/java/com/release11/klaus/utilis/TrackingClient.java
new file mode 100644
index 0000000..fecacef
--- /dev/null
+++ b/src/main/java/com/release11/klaus/utilis/TrackingClient.java
@@ -0,0 +1,18 @@
+package com.release11.klaus.utilis;
+
+import org.slf4j.MDC;
+
+import java.util.Map;
+
+public final class TrackingClient {
+
+    private TrackingClient(){};
+
+    public static void setBusinessKeys(Map businessKeysMap){
+        for (Map.Entry entry : businessKeysMap.entrySet()) {
+            MDC.put(entry.getKey().getReasonPhrase(), entry.getValue());
+        }
+    }
+
+
+}
diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml
new file mode 100644
index 0000000..476fda0
--- /dev/null
+++ b/src/main/resources/logback.xml
@@ -0,0 +1,26 @@
+
+
+    
+    
+    
+        localhost
+        6379
+        logstash
+        
+            
+            
+                {"date" : "%d{yyyy-MM-dd}", "timestamp":"%d{HH:mm:ss}", "businessKeys": ["interfaceName": "%X{interfaceName}", "clientUUID": "%X{clientUUID}", "messageId": "%X{messageId}"],"thread":"%t","level":"%-5level", "message":"%msg"}%n
+            
+        
+    
+    
+        
+    
+    
+        
+        
+        
+    
+
+
+
diff --git a/src/main/resources/static/js/main.js b/src/main/resources/static/js/main.js
new file mode 100644
index 0000000..3e322d2
--- /dev/null
+++ b/src/main/resources/static/js/main.js
@@ -0,0 +1,38 @@
+
+function httpGet()
+{
+  var clientUUID = document.getElementById("getClientUUID").value;
+   var mockedResponseId = document.getElementById("getMockedResponseId").value;
+   var url = "http://localhost:8097/klaus/v1/get/" + clientUUID + "/" + mockedResponseId;
+    var xmlHttp = new XMLHttpRequest();
+    xmlHttp.open( "GET", url, false ); // false for synchronous request
+    xmlHttp.send( null );
+
+    var container = document.getElementById("getMockedResponse");
+    var headers = xmlHttp.getAllResponseHeaders();
+    container.appendChild(document.createTextNode(headers));
+    container.appendChild(document.createTextNode("Your message: "));
+    container.appendChild(document.createElement("br"));
+    container.appendChild(document.createTextNode((xmlHttp.responseText)));
+    return xmlHttp.responseText;
+
+}
+
+        var numberOfHeaders = 0;
+            function addFields(){
+            var container = document.getElementById("headers");
+
+                numberOfHeaders++;
+                container.appendChild(document.createElement("br"));
+                container.appendChild(document.createTextNode("Header " + (numberOfHeaders)));
+                var headerInput = document.createElement("input");
+                headerInput.type = "text";
+                headerInput.name = "header";
+                container.appendChild(headerInput);
+
+                container.appendChild(document.createTextNode("Value " + (numberOfHeaders)));
+                var valueInput = document.createElement("input");
+                valueInput.type = "text";
+                valueInput.name = "value";
+                container.appendChild(valueInput);
+        }
\ No newline at end of file
diff --git a/target/classes/META-INF/Klaus.kotlin_module b/target/classes/META-INF/Klaus.kotlin_module
new file mode 100644
index 0000000..a49347a
Binary files /dev/null and b/target/classes/META-INF/Klaus.kotlin_module differ
diff --git a/target/classes/com/release11/klaus/model/constraints/HttpCode.class b/target/classes/com/release11/klaus/model/constraints/HttpCode.class
new file mode 100644
index 0000000..c2cbb82
Binary files /dev/null and b/target/classes/com/release11/klaus/model/constraints/HttpCode.class differ
diff --git a/target/classes/com/release11/klaus/model/constraints/HttpCodeValidation.class b/target/classes/com/release11/klaus/model/constraints/HttpCodeValidation.class
new file mode 100644
index 0000000..183a0e2
Binary files /dev/null and b/target/classes/com/release11/klaus/model/constraints/HttpCodeValidation.class differ
diff --git a/target/classes/com/release11/klaus/repository/LogsRepository.class b/target/classes/com/release11/klaus/repository/LogsRepository.class
new file mode 100644
index 0000000..0c36ee4
Binary files /dev/null and b/target/classes/com/release11/klaus/repository/LogsRepository.class differ
diff --git a/target/classes/com/release11/klaus/utilis/BusinessKey.class b/target/classes/com/release11/klaus/utilis/BusinessKey.class
new file mode 100644
index 0000000..591e4df
Binary files /dev/null and b/target/classes/com/release11/klaus/utilis/BusinessKey.class differ
diff --git a/target/classes/com/release11/klaus/utilis/TrackingClient.class b/target/classes/com/release11/klaus/utilis/TrackingClient.class
new file mode 100644
index 0000000..99271ce
Binary files /dev/null and b/target/classes/com/release11/klaus/utilis/TrackingClient.class differ
diff --git a/target/classes/logback.xml b/target/classes/logback.xml
new file mode 100644
index 0000000..476fda0
--- /dev/null
+++ b/target/classes/logback.xml
@@ -0,0 +1,26 @@
+
+
+    
+    
+    
+        localhost
+        6379
+        logstash
+        
+            
+            
+                {"date" : "%d{yyyy-MM-dd}", "timestamp":"%d{HH:mm:ss}", "businessKeys": ["interfaceName": "%X{interfaceName}", "clientUUID": "%X{clientUUID}", "messageId": "%X{messageId}"],"thread":"%t","level":"%-5level", "message":"%msg"}%n
+            
+        
+    
+    
+        
+    
+    
+        
+        
+        
+    
+
+
+
diff --git a/target/classes/static/js/main.js b/target/classes/static/js/main.js
new file mode 100644
index 0000000..3e322d2
--- /dev/null
+++ b/target/classes/static/js/main.js
@@ -0,0 +1,38 @@
+
+function httpGet()
+{
+  var clientUUID = document.getElementById("getClientUUID").value;
+   var mockedResponseId = document.getElementById("getMockedResponseId").value;
+   var url = "http://localhost:8097/klaus/v1/get/" + clientUUID + "/" + mockedResponseId;
+    var xmlHttp = new XMLHttpRequest();
+    xmlHttp.open( "GET", url, false ); // false for synchronous request
+    xmlHttp.send( null );
+
+    var container = document.getElementById("getMockedResponse");
+    var headers = xmlHttp.getAllResponseHeaders();
+    container.appendChild(document.createTextNode(headers));
+    container.appendChild(document.createTextNode("Your message: "));
+    container.appendChild(document.createElement("br"));
+    container.appendChild(document.createTextNode((xmlHttp.responseText)));
+    return xmlHttp.responseText;
+
+}
+
+        var numberOfHeaders = 0;
+            function addFields(){
+            var container = document.getElementById("headers");
+
+                numberOfHeaders++;
+                container.appendChild(document.createElement("br"));
+                container.appendChild(document.createTextNode("Header " + (numberOfHeaders)));
+                var headerInput = document.createElement("input");
+                headerInput.type = "text";
+                headerInput.name = "header";
+                container.appendChild(headerInput);
+
+                container.appendChild(document.createTextNode("Value " + (numberOfHeaders)));
+                var valueInput = document.createElement("input");
+                valueInput.type = "text";
+                valueInput.name = "value";
+                container.appendChild(valueInput);
+        }
\ No newline at end of file