Skip to content

Commit 79b6f83

Browse files
authored
feat(scaling-dive): add engine-flush-defer lever (#108)
1 parent 0e730a6 commit 79b6f83

1 file changed

Lines changed: 12 additions & 1 deletion

File tree

.github/workflows/scaling-dive.yml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ jobs:
3333
strategy:
3434
fail-fast: false
3535
matrix:
36-
lever: [baseline, websocket-only, nodemem, new-changes-batch, engine-packing]
36+
lever: [baseline, websocket-only, nodemem, new-changes-batch, engine-packing, engine-flush-defer]
3737

3838
env:
3939
PNPM_HOME: /home/runner/setup-pnpm/node_modules/.bin
@@ -143,6 +143,17 @@ jobs:
143143
sed -i '/"loadTest": true,/a\ "enginePacking": true,' settings.json
144144
grep enginePacking settings.json || { echo "enginePacking not present — core must include feat/engine-io-ws-packing"; exit 1; }
145145
;;
146+
engine-flush-defer)
147+
# Lever 8b: defer engine.io socket flush onto next microtask
148+
# so multiple sendPacket calls in the same task accumulate in
149+
# writeBuffer before drain. Pairs with the existing
150+
# transport.send([packets]) fast path — at high emit rate the
151+
# batch sees N > 1 packets where the legacy path almost
152+
# always saw 1. Requires core_ref to include
153+
# feat/engine-io-flush-deferral.
154+
sed -i '/"loadTest": true,/a\ "engineFlushDefer": true,' settings.json
155+
grep engineFlushDefer settings.json || { echo "engineFlushDefer not present — core must include feat/engine-io-flush-deferral"; exit 1; }
156+
;;
146157
*)
147158
echo "unknown lever: ${{ matrix.lever }}" >&2
148159
exit 1

0 commit comments

Comments
 (0)