a65aadc5305b430689bdd7628532e26b687d6351
Cap concurrency on two services that were fanning out unbounded requests to external systems: 1. email-compose.service.ts — attachment resolution. User attaches 20 files → 20 simultaneous S3/MinIO GETs + 20 buffers in heap. Now capped at 4 concurrent reads; peak memory bounded by 4 × max-attachment-size regardless of attachment count. 2. document-signing-emails.service.ts — sendSigningCompleted fanned out one SMTP send per recipient simultaneously. A Sales Contract with 10 recipients (client + 5 sellers + 4 witnesses) hit SMTP provider connection limits (Mailgun/SES/Postmark all cap concurrent connections in the single digits) and dropped overflow silently. Now capped at 3 concurrent sends. Both use `pLimit(N)` from the Sindre Sorhus suite — well-tested at scale, ~1kb gzip per service. Pattern is established for the remaining audit-flagged mass-op services (brochures, backup, GDPR export) to adopt as those files are touched. Verified: tsc clean, vitest 1293/1293 pass. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Description
No description provided
Languages
TypeScript
98.7%
HTML
1%
CSS
0.1%
Shell
0.1%