A decentralized music tracking and discovery platform built on AT Protocol 🎵

Increase page size and reduce streaming delays

+6 -13
+6 -13
tap/src/main.ts
··· 6 6 import { omit } from "@es-toolkit/es-toolkit/compat"; 7 7 import type { SelectEvent } from "./schema/event.ts"; 8 8 9 - const PAGE_SIZE = 50; 10 - const PAGE_DELAY_MS = 3; 11 - const YIELD_EVERY_N_PAGES = 1; // Yield after every page 12 - const MAX_BUFFER_SIZE = 64 * 1024; // 64KB buffer limit 13 - const BACKPRESSURE_CHECK_INTERVAL = 10; // Check every 10 events 14 - const MESSAGE_DELAY_MS = 1; // Add tiny delay between messages 9 + const PAGE_SIZE = 100; // Larger batches for faster streaming 10 + const YIELD_EVERY_N_PAGES = 5; // Yield every 5 pages (2500 events) 11 + const MAX_BUFFER_SIZE = 256 * 1024; // 256KB buffer limit 12 + const BACKPRESSURE_CHECK_INTERVAL = 100; // Check every 100 events 15 13 const VERBOSE_LOGGING = false; // Set to true for detailed message tracking 16 14 17 15 interface ClientState { ··· 190 188 return; 191 189 } 192 190 193 - if (MESSAGE_DELAY_MS > 0 && i % 5 === 0) { 194 - await new Promise((resolve) => 195 - setTimeout(resolve, MESSAGE_DELAY_MS), 196 - ); 197 - } 198 - 191 + // Check backpressure periodically (no message delay for speed) 199 192 if (totalEvents % BACKPRESSURE_CHECK_INTERVAL === 0) { 200 193 await waitForBackpressure(socket); 201 194 } ··· 205 198 page++; 206 199 207 200 if (hasMore && page % YIELD_EVERY_N_PAGES === 0) { 208 - await new Promise((resolve) => setTimeout(resolve, PAGE_DELAY_MS)); 201 + await new Promise((resolve) => setTimeout(resolve, 0)); 209 202 } 210 203 } 211 204