This repo is an implementation of IcedTea built on top of an open-source data processing platform, Texera.
- Java 11
- Node JS LTS version
- SBT
- Yarn
You can follow this guide to install all the requirements.
First, install frontend packages by running this command in bash:
core/scripts/build.sh
Then, start both frontend and backend by running this command:
core/scripts/deploy-daemon.sh
Before using the time-travel feature, you need to create or upload a workflow. To get started, I’ve included 5 sample workflows (Q1.json - Q5.json) used in the user study, which you can find in this repository.
- Step 1: Click the Upload button on the platform to upload one of the sample workflows.
Once the workflow is uploaded, open it in the Workflow Editor.
- Step 2: Right-click on any operator in the workflow and choose Set as InterestingOperator to mark it for further monitoring.
After selecting the "Interesting" operator, you can run the workflow.
-
Step 3: Click the Run button at the top-right of the editor to start the execution.
-
Optional: Enable Auto-Interaction by checking the box next to the run button. You can also adjust the interval for the auto-interaction.
If you are manually interacting with the workflow during execution, you can pause it to explore a snapshot of the operator’s state.
- Step 4: Click the Pause button to view a tuple-consistent state. Then, click the Interaction button to remember the current state so you can return to it later using the time-travel feature.
After the workflow execution finishes, you can access the time-travel feature to revert the workflow to any previous state with an interaction.
-
Step 5: In the left panel, click the Clock button to open the time-travel feature.
-
Step 6: You will see a list of past executions. Select an execution with interactions and click the interaction to revert the workflow back to that state.
After reverting the workflow to the chosen interaction point, you can resume stepping through it.
- Step 7: Right-click an operator and choose Step to take the next action in the workflow.