Data Pipeline Case Studies
Window Total
Accumulate a selected number of values as a small rolling-window model.
window
Windowed pipelines use a bounded prefix or range of records.
total
The total is a scalar checkpoint that replay can inspect at every step.
Window Total
window_total.lua
Replay: real traced execution (multi-file project)
local window = 3
local total = 0
local seen = 0
for _, value in ipairs({4, 6, 8, 10}) do
if seen < window then
total = total + value
seen = seen + 1
end
end
print("window=" .. window)
print("seen=" .. seen)
print("total=" .. total)
local window = 2
local total = 0
local seen = 0
for _, value in ipairs({4, 6, 8, 10}) do
if seen < window then
total = total + value
seen = seen + 1
end
end
print("window=" .. window)
print("seen=" .. seen)
print("total=" .. total)
local window = 4
local total = 0
local seen = 0
for _, value in ipairs({4, 6, 8, 10}) do
if seen < window then
total = total + value
seen = seen + 1
end
end
print("window=" .. window)
print("seen=" .. seen)
print("total=" .. total)
window ← 3, total ← 0, seen ← 0
1local window→ 3 = 3 --@window=2, 42local total→ 0 = 03local seen→ 0 = 0_, value in ipairs({4, 6, 8, 10}) do
pass 1 of 45for _1, value4 in ipairs({4, 6, 8, 10}) do6 if seen < window then7 total = total + valueAll 4 passes — pass 1 is the card above pass _value1 1 4 2 2 6 3 3 8 4 4 10 total ← 4, seen ← 1
pass 1 of 35for _, value in ipairs({4, 6, 8, 10}) do6 if seen0 < window3 then7 total→ 4 = total + value48 seen→ 1 = seen + 19 endAll 3 passes — pass 1 is the card above pass valuetotalseen1 4 0 → 4 0 → 1 2 6 4 → 10 1 → 2 3 8 10 → 18 2 → 3 print("window=" .. window)
12print("window=" .. window3)13print("seen=" .. seen3)14print("total=" .. total18)outputwindow=3 seen=3 total=18
window ← 2, total ← 0, seen ← 0
1local window→ 2 = 22local total→ 0 = 03local seen→ 0 = 0_, value in ipairs({4, 6, 8, 10}) do
pass 1 of 45for _1, value4 in ipairs({4, 6, 8, 10}) do6 if seen < window then7 total = total + valueAll 4 passes — pass 1 is the card above pass _valuewindowtotalseen1 1 4 2 0 → 4 0 → 1 2 2 6 2 4 → 10 1 → 2 3 3 8 — — — 4 4 10 — — — total ← 4, seen ← 1
pass 1 of 25for _, value in ipairs({4, 6, 8, 10}) do6 if seen0 < window2 then7 total→ 4 = total + value48 seen→ 1 = seen + 19 endtotal ← 10, seen ← 2
pass 2 of 25for _, value in ipairs({4, 6, 8, 10}) do6 if seen1 < window2 then7 total→ 10 = total + value68 seen→ 2 = seen + 19 endprint("window=" .. window)
12print("window=" .. window2)13print("seen=" .. seen2)14print("total=" .. total10)outputwindow=2 seen=2 total=10
window ← 4, total ← 0, seen ← 0
1local window→ 4 = 42local total→ 0 = 03local seen→ 0 = 0_, value in ipairs({4, 6, 8, 10}) do
pass 1 of 45for _1, value4 in ipairs({4, 6, 8, 10}) do6 if seen < window then7 total = total + valueAll 4 passes — pass 1 is the card above pass _value1 1 4 2 2 6 3 3 8 4 4 10 total ← 4, seen ← 1
pass 1 of 45for _, value in ipairs({4, 6, 8, 10}) do6 if seen0 < window4 then7 total→ 4 = total + value48 seen→ 1 = seen + 19 endAll 4 passes — pass 1 is the card above pass valuetotalseen1 4 0 → 4 0 → 1 2 6 4 → 10 1 → 2 3 8 10 → 18 2 → 3 4 10 18 → 28 3 → 4 print("window=" .. window)
12print("window=" .. window4)13print("seen=" .. seen4)14print("total=" .. total28)outputwindow=4 seen=4 total=28