diff --git a/edqs/src/main/conf/edqs.conf b/edqs/src/main/conf/edqs.conf
new file mode 100644
index 0000000000..ae880ef7e8
--- /dev/null
+++ b/edqs/src/main/conf/edqs.conf
@@ -0,0 +1,22 @@
+#
+# Copyright © 2016-2024 The Thingsboard Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+export JAVA_OPTS="$JAVA_OPTS -Xlog:gc*,heap*,age*,safepoint=debug:file=@pkg.logFolder@/gc.log:time,uptime,level,tags:filecount=10,filesize=10M"
+export JAVA_OPTS="$JAVA_OPTS -XX:+IgnoreUnrecognizedVMOptions -XX:+HeapDumpOnOutOfMemoryError"
+export JAVA_OPTS="$JAVA_OPTS -XX:-UseBiasedLocking -XX:+UseTLAB -XX:+ResizeTLAB -XX:+PerfDisableSharedMem -XX:+UseCondCardMark"
+export JAVA_OPTS="$JAVA_OPTS -XX:+UseG1GC -XX:MaxGCPauseMillis=500 -XX:+UseStringDeduplication -XX:+ParallelRefProcEnabled -XX:MaxTenuringThreshold=10"
+export LOG_FILENAME=${pkg.name}.out
+export LOADER_PATH=${pkg.installFolder}/conf
diff --git a/edqs/src/main/conf/logback.xml b/edqs/src/main/conf/logback.xml
new file mode 100644
index 0000000000..4ff57d48ab
--- /dev/null
+++ b/edqs/src/main/conf/logback.xml
@@ -0,0 +1,49 @@
+
+
+
+
+
+    
+        ${pkg.logFolder}/${pkg.name}.log
+        
+            ${pkg.logFolder}/${pkg.name}.%d{yyyy-MM-dd}.%i.log
+            100MB
+            30
+            3GB
+        
+        
+            %d{ISO8601} [%thread] %-5level %logger{36} - %msg%n
+        
+    
+    
+        
+            %d{ISO8601} [%thread] %-5level %logger{36} - %msg%n
+        
+    
+
+    
+
+    
+        
+        
+    
+
+
diff --git a/msa/edqs/docker/Dockerfile b/msa/edqs/docker/Dockerfile
new file mode 100644
index 0000000000..e634029bbf
--- /dev/null
+++ b/msa/edqs/docker/Dockerfile
@@ -0,0 +1,31 @@
+#
+# Copyright © 2016-2024 The Thingsboard Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+FROM thingsboard/openjdk17:bookworm-slim
+
+COPY start-tb-edqs.sh ${pkg.name}.deb /tmp/
+
+RUN chmod a+x /tmp/*.sh \
+    && mv /tmp/start-tb-edqs.sh /usr/bin && \
+    (yes | dpkg -i /tmp/${pkg.name}.deb) && \
+    rm /tmp/${pkg.name}.deb && \
+    (systemctl --no-reload disable --now ${pkg.name}.service > /dev/null 2>&1 || :) && \
+    chown -R ${pkg.user}:${pkg.user} /tmp && \
+    chmod 555 ${pkg.installFolder}/bin/${pkg.name}.jar
+
+USER ${pkg.user}
+
+CMD ["start-tb-edqs.sh"]
\ No newline at end of file
diff --git a/msa/edqs/docker/start-tb-edqs.sh b/msa/edqs/docker/start-tb-edqs.sh
new file mode 100755
index 0000000000..bdd1ee48d3
--- /dev/null
+++ b/msa/edqs/docker/start-tb-edqs.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+#
+# Copyright © 2016-2024 The Thingsboard Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+CONF_FOLDER=${pkg.installFolder}/conf
+jarfile=${pkg.installFolder}/bin/${pkg.name}.jar
+configfile=${pkg.name}.conf
+
+source "${CONF_FOLDER}/${configfile}"
+
+echo "Starting '${project.name}' ..."
+
+cd ${pkg.installFolder}/bin
+
+exec java -cp ${jarfile} $JAVA_OPTS -Dloader.main=org.thingsboard.server.edqs.ThingsboardEdqsApplication \
+                    -Dspring.jpa.hibernate.ddl-auto=none \
+                    -Dlogging.config=$CONF_FOLDER/logback.xml \
+                    org.springframework.boot.loader.launch.PropertiesLauncher
diff --git a/msa/edqs/pom.xml b/msa/edqs/pom.xml
new file mode 100644
index 0000000000..4874c06e4b
--- /dev/null
+++ b/msa/edqs/pom.xml
@@ -0,0 +1,190 @@
+
+
+    4.0.0
+    
+        org.thingsboard
+        4.0.0-SNAPSHOT
+        msa
+    
+    org.thingsboard.msa
+    edqs
+    pom
+
+    ThingsBoard Entity Data Query Microservice
+    https://thingsboard.io
+    ThingsBoard Entity Data Query Microservice
+
+    
+        UTF-8
+        ${basedir}/../..
+        edqs
+        edqs
+        /var/log/${pkg.name}
+        /usr/share/${pkg.name}
+        pre-integration-test
+    
+
+    
+        
+            org.thingsboard
+            edqs
+            ${project.version}
+            deb
+            deb
+            provided
+        
+    
+
+    
+        
+            
+                org.apache.maven.plugins
+                maven-dependency-plugin
+                
+                    
+                        copy-edqs
+                        package
+                        
+                            copy
+                        
+                        
+                            
+                                
+                                    org.thingsboard
+                                    edqs
+                                    deb
+                                    deb
+                                    ${pkg.name}.deb
+                                    ${project.build.directory}
+                                
+                            
+                        
+                    
+                
+            
+            
+                org.apache.maven.plugins
+                maven-resources-plugin
+                
+                    
+                        copy-docker-config
+                        process-resources
+                        
+                            copy-resources
+                        
+                        
+                            ${project.build.directory}
+                            
+                                
+                                    docker
+                                    true
+                                
+                            
+                        
+                    
+                
+            
+            
+                com.spotify
+                dockerfile-maven-plugin
+                
+                    
+                        build-docker-image
+                        pre-integration-test
+                        
+                            build
+                        
+                        
+                            ${dockerfile.skip}
+                            ${docker.repo}/${docker.name}
+                            true
+                            false
+                            ${project.build.directory}
+                        
+                    
+                    
+                        tag-docker-image
+                        pre-integration-test
+                        
+                            tag
+                        
+                        
+                            ${dockerfile.skip}
+                            ${docker.repo}/${docker.name}
+                            ${project.version}
+                        
+                    
+                
+            
+        
+    
+    
+        
+            push-docker-image
+            
+                
+                    push-docker-image
+                
+            
+            
+                
+                    
+                        com.spotify
+                        dockerfile-maven-plugin
+                        
+                            
+                                push-latest-docker-image
+                                pre-integration-test
+                                
+                                    push
+                                
+                                
+                                    latest
+                                    ${docker.repo}/${docker.name}
+                                
+                            
+                            
+                                push-version-docker-image
+                                pre-integration-test
+                                
+                                    push
+                                
+                                
+                                    ${project.version}
+                                    ${docker.repo}/${docker.name}
+                                
+                            
+                        
+                    
+                
+            
+        
+    
+    
+        
+            jenkins
+            Jenkins Repository
+            https://repo.jenkins-ci.org/releases
+            
+                false
+            
+        
+    
+
diff --git a/msa/pom.xml b/msa/pom.xml
index ff394295f4..259de5fb93 100644
--- a/msa/pom.xml
+++ b/msa/pom.xml
@@ -48,6 +48,7 @@
         transport
         js-executor
         monitoring
+        edqs