diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/etl/streamedwithfrontend/BackendStepPostRunInput.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/etl/streamedwithfrontend/BackendStepPostRunInput.java
new file mode 100644
index 00000000..97e52e30
--- /dev/null
+++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/etl/streamedwithfrontend/BackendStepPostRunInput.java
@@ -0,0 +1,73 @@
+/*
+ * QQQ - Low-code Application Framework for Engineers.
+ * Copyright (C) 2021-2022. Kingsrook, LLC
+ * 651 N Broad St Ste 205 # 6917 | Middletown DE 19709 | United States
+ * contact@kingsrook.com
+ * https://github.com/Kingsrook/
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
+
+package com.kingsrook.qqq.backend.core.processes.implementations.etl.streamedwithfrontend;
+
+
+import java.util.List;
+import com.kingsrook.qqq.backend.core.model.actions.processes.RunBackendStepInput;
+import com.kingsrook.qqq.backend.core.model.data.QRecord;
+
+
+/*******************************************************************************
+ ** Subclass of RunBackendStepInput, meant for use in the postRun of the transform/load
+ ** steps of a Streamed-ETL-with-frontend processes - where the Record list is not the
+ ** full process's record list - rather - is just a preview (e.g., first n).
+ ** overrides the getRecords and setRecords method.
+ **
+ *******************************************************************************/
+public class BackendStepPostRunInput extends RunBackendStepInput
+{
+ private List previewRecordList;
+
+
+
+ /*******************************************************************************
+ **
+ *******************************************************************************/
+ public BackendStepPostRunInput(RunBackendStepInput runBackendStepInput)
+ {
+ super();
+ runBackendStepInput.cloneFieldsInto(this);
+ previewRecordList = runBackendStepInput.getRecords();
+ }
+
+
+
+ /*******************************************************************************
+ **
+ *******************************************************************************/
+ @Override
+ public List getRecords()
+ {
+ throw (new IllegalStateException("Method getRecords should not be called in a post-run - as it is NOT a full record list. Call getPreviewRecordList to get a subset of the process's output records."));
+ }
+
+
+
+ /*******************************************************************************
+ **
+ *******************************************************************************/
+ public List getPreviewRecordList()
+ {
+ return (this.previewRecordList);
+ }
+}
diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/etl/streamedwithfrontend/BackendStepPostRunOutput.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/etl/streamedwithfrontend/BackendStepPostRunOutput.java
new file mode 100644
index 00000000..2d17eeba
--- /dev/null
+++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/etl/streamedwithfrontend/BackendStepPostRunOutput.java
@@ -0,0 +1,72 @@
+/*
+ * QQQ - Low-code Application Framework for Engineers.
+ * Copyright (C) 2021-2023. Kingsrook, LLC
+ * 651 N Broad St Ste 205 # 6917 | Middletown DE 19709 | United States
+ * contact@kingsrook.com
+ * https://github.com/Kingsrook/
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
+
+package com.kingsrook.qqq.backend.core.processes.implementations.etl.streamedwithfrontend;
+
+
+import java.util.List;
+import com.kingsrook.qqq.backend.core.model.actions.processes.RunBackendStepOutput;
+import com.kingsrook.qqq.backend.core.model.data.QRecord;
+
+
+/*******************************************************************************
+ ** Subclass of RunBackendStepOutput, meant for use in the pseudo-steps used by
+ ** the Streamed-ETL-with-frontend processes - where the Record list is not the
+ ** full process's record list - rather - is just a preview of the records - e.g.,
+ ** the first n.
+ *******************************************************************************/
+public class BackendStepPostRunOutput extends RunBackendStepOutput
+{
+ private List previewRecordList;
+
+
+
+ /*******************************************************************************
+ **
+ *******************************************************************************/
+ public BackendStepPostRunOutput(RunBackendStepOutput runBackendStepOutput)
+ {
+ super();
+ setValues(runBackendStepOutput.getValues());
+ previewRecordList = runBackendStepOutput.getRecords();
+ }
+
+
+
+ /*******************************************************************************
+ **
+ *******************************************************************************/
+ @Override
+ public List getRecords()
+ {
+ throw (new IllegalStateException("Method getRecords should not be called in a post-run - as it is NOT a full record list. Call getPreviewRecordList to get a subset of the process's output records."));
+ }
+
+
+
+ /*******************************************************************************
+ **
+ *******************************************************************************/
+ public List getPreviewRecordList()
+ {
+ return (this.previewRecordList);
+ }
+}