Блог

Чому PDF-рендеринг на edge важливий після 10K інвойсів на день

Cold start, регіональна затримка і compute на сторінку змінюються зі зростанням обсягу. Коли рендеринг на edge починає реально окупатися?

Якщо ви генеруєте кілька сотень PDF на день в одній Lambda або невеликому Kubernetes pod, архітектура рідко здається критичною. Майже будь-який підхід працює й виглядає достатньо швидким.

На десятках тисяч документів на день усе змінюється. E-commerce invoices, shipping labels, BNPL receipts, payroll documents і billing platforms починають відчувати три числа:

  1. Cold-start latency, бо десь завжди є холодний instance.
  2. Регіональна затримка, бо користувачі не сидять поруч із вашим origin.
  3. Compute на один render, бо ви платите його тисячі разів щодня.

Edge-deployed renderers на кшталт gPdf змінюють цю математику, а не просто прискорюють той самий підхід.

1. Cold start зростає разом із concurrency

Типовий сценарій: 10 warm containers покривають середній traffic. Приходить 3x spike на Black Friday, кінець місяця або день payroll. 20 нових containers cold-start, кожен витрачає 1,5-2,5 секунди на запуск Chromium, Prince або runtime. У цей час global p99 росте.

PDF traffic майже завжди нерівний. Invoices з’являються на межах billing cycle, labels під час carrier pickup, statements наприкінці місяця.

Edge-альтернатива: Cloudflare Worker isolate cold-start за 5-20 ms, а не за секунди. Немає container або browser boot; WASM module завантажується у вже живий process. У benchmark gPdf worst cold start близько 12 ms і лише для першого request нового isolate.

2. Регіональна затримка не зникає

Sydney до us-east-1 — це приблизно 200 ms ще до виконання коду. São Paulo до eu-west-1 — близько 190 ms. Mumbai до US East — близько 220 ms.

Централізований PDF API з render 300 ms з Sydney виглядає так:

client -> us-east  : 200 ms
us-east render     : 300 ms
us-east -> client  : 200 ms
total wall-clock   : 700 ms

Для batch job це може бути прийнятно. Для interactive invoice preview — повільно.

Edge-альтернатива: Cloudflare працює в сотнях міст. Colo біля Sydney може бути за кілька ms:

client -> SYD colo : 5 ms
SYD render         : 4 ms
SYD -> client      : 5 ms
total wall-clock   : 14 ms

Коли PDF API працює на edge, auth, rate limit і checkout preview також можна наблизити до hot path.

3. Compute на render тихо накопичується

Приклад 100 000 рендерів на день:

  • Puppeteer близько 600 ms і 1024 MB: приблизно $240/місяць лише compute.
  • DocRaptor 89/100 000 сторінок: приблизно **2 670/місяць** за 3 млн pages.
  • gPdf 5/100 000 сторінок: приблизно **150/місяць** при 100 000/day або $5 при рівно 100 000 сторінок на місяць.

При 1 млн renders/day різниця більша: Puppeteer близько 2 400/місяць плюс ops, DocRaptor близько 26 700/місяць, gPdf близько $1 500/місяць за тією ж volume логікою.

Причина — footprint renderer. Chromium process на сотні MB і WASM module на кілька MB мають різну unit economics.

Що edge дає насправді

Передбачувану latency під навантаженням

Без boot cost на кожен request p50 і p99 залишаються близькими. gPdf часто бачить p99 у межах 3x p50 навіть під spike; Puppeteer під cold-start storm може піти до 10x.

Один artefact всюди

.wasm module однаково deployиться в кожен Cloudflare colo. Питання “чи warm pool у Sydney” зникає.

Шлях до embedded deployment

Якщо клієнт хоче запускати gPdf у своїй VPC, isolated cluster або intranet, той самий WASM module працює. Це portable technology, не лише hosted SaaS.

Де edge не найкраща відповідь

  • Renders на багато секунд: гігантські фінансові звіти на 30 секунд краще почуваються в long-running containers.
  • Renders, прив’язані до database: важкі OLAP JOIN краще виконати біля database, а final JSON відправити на edge.
  • Stateful post-processing: signing, archival або складний watermark pipeline можуть вимагати централізованого workflow.

Для більшості B2B invoices, labels і receipts edge виграє на latency, cost і operations.

Коли перестати терпіти поточний setup

Якщо збігаються три пункти, migration вже варто тестувати:

  • PDF infrastructure коштує понад $300/місяць.
  • PDF p99 перевищує 800 ms у нормальному traffic.
  • Був cold-start incident, який побачили клієнти.
  • Ви витратили понад 4 години на CJK, RTL або emoji glyphs.
  • PDF генеруються в interactive flow.
  • Ви працюєте в більш ніж одному geographic region.

Якщо це знайомо, Playground renderить sample invoice за кілька ms.