diff --git a/.buildkite/libbeat/pipeline.libbeat.yml b/.buildkite/libbeat/pipeline.libbeat.yml
index 48579e857727..351a36b61548 100644
--- a/.buildkite/libbeat/pipeline.libbeat.yml
+++ b/.buildkite/libbeat/pipeline.libbeat.yml
@@ -79,6 +79,31 @@ steps:
           - github_commit_status:
               context: "libbeat: Python Integration Tests"
 
+      - label: "Module compat tests: next major"
+        # Run module integration tests under next major of Elastic stack.
+        env:
+          STACK_ENVIRONMENT: "next-major"
+        command: |
+          set -euo pipefail
+          source .buildkite/scripts/changesets.sh
+          defineModuleFromTheChangeSet libbeat
+          echo "~~~ Running tests"
+          cd libbeat
+          mage pythonIntegTest
+        retry:
+          automatic:
+            - limit: 3
+        agents:
+          provider: "gcp"
+          image: "${IMAGE_UBUNTU_X86_64}"
+          machineType: "${GCP_HI_PERF_MACHINE_TYPE}"
+        artifact_paths:
+          - "libbeat/build/*.xml"
+          - "libbeat/build/*.json"
+        notify:
+          - github_commit_status:
+              context: "libbeat: Module compat tests / next major"
+
       - label: ":negative_squared_cross_mark: Cross compile"
         key: "mandatory-cross-compile"
         command: |
@@ -96,7 +121,7 @@ steps:
           - "libbeat/build/*.xml"
           - "libbeat/build/*.json"
         notify:
-          - github_commit_status: 
+          - github_commit_status:
               context: "libbeat: Cross compile"
 
       - label: ":testengine: Stress Tests"