Use case · Logistics ও shipping

Carrier-grade scale-এ shipping label PDF

Vector GS1-128 barcode, ITF-14 carton code এবং SSCC-18 pallet ID-সহ 4×6 thermal shipping label render করুন। Black Friday spike-এও Edge rendering p99 15 ms-এর নিচে রাখে।

কাজটি কী

Order JSON থেকে সরাসরি carrier-ready 4×6 thermal shipping label render করুন — vector GS1-128, ITF-14 এবং SSCC-18 barcode-সহ — প্রতি request-এ headless browser চালানো ছাড়া। Output Zebra/SATO/Honeywell printer-এ 203 dpi-তে reliable scan করতে হবে এবং peak retail spike-এ p99 15 ms-এর নিচে থাকতে হবে।

কখন fit করে

  • Vector Code 128, QR, DataMatrix, PDF417 এবং GS1-128 / ITF-14 / SSCC-18 — 203 dpi, 300 dpi এবং 600 dpi-তে sub-pixel accurate।
  • 0.1 mm coordinate precision — human-readable interpretation line-এর carrier overall-length tolerance পূরণ করে।
  • Page size `label_4_6_in` (`label_4_8_in`, `label_a6` সহ) dominant thermal-printer format-এর জন্য pre-configured।
  • Determinism — একই order JSON byte-identical PDF render করে, তাই warehouse reprint কখনও 'ভিন্ন' label তৈরি করে না।
  • Edge rendering — carrier pickup-এর একই minute-এ 50K label print হলেও p50 3 ms, p99 8 ms।
  • Stateless: label Cloudflare Worker isolate-এর memory-তে প্রায় 4 ms থাকে, তারপর freed হয়। Document store নেই, carrier-data leakage surface নেই।

Sample request

POST /api/v1/pdf/render — Code 128 carrier-tracking barcode-সহ minimal 4×6 thermal label।

{
  "pages": [{
    "size": "label_4_6_in",
    "elements": [
      {
        "type": "text",
        "x": 4, "y": 6,
        "content": "SHIP TO",
        "style": { "font_size": 8, "font_family": "NotoSans-Regular" }
      },
      {
        "type": "text",
        "x": 4, "y": 12,
        "content": "Acme Distribution Centre\n1200 Logistics Pkwy\nMemphis TN 38116",
        "style": { "font_size": 11, "font_family": "NotoSans-Regular" }
      },
      {
        "type": "barcode",
        "format": "code128",
        "content": "1Z999AA10123456784",
        "x": 4, "y": 60,
        "width": 92, "height": 22,
        "barcode_text": { "enabled": true, "position": "bottom" }
      }
    ]
  }]
}

Compliance note

  • GS1 General Specifications — 203 dpi-তে module width (X-dimension), quiet zone এবং overall length GS1 Section 5.4 tolerance মেনে চলে।
  • Carrier mandate — UPS, FedEx, DHL এবং USPS rendered output-কে scannable হিসেবে accept করে; per-carrier post-processing দরকার নেই।
  • Tax/audit কারণে label PDF রাখতে হলে `settings.profile = "pdfa-2b"` দিয়ে archival PDF/A-2b available।

Shipping-label workload এক paragraph-এ

প্রতিটি order একটি PDF তৈরি করে, প্রতিটি PDF একবার thermal printer-এ print হয়, আর আপনি slow হলে failure mode “page slow load” নয় — “warehouse pickup আপনার label-rendering API-এর পেছনে queue হয়ে আছে”। Shipping এমন কাজ যেখানে p99 latency হলো product metric, deterministic output গুরুত্বপূর্ণ কারণ reprint routine, এবং barcode quality — pixel নয়, GS1 X-dimension tolerance দিয়ে মাপা — নির্ধারণ করে scanner প্রথম pass-এ label ধরবে কি না।

Headless-browser-based PDF stack তিনটি দিকেই একসাথে struggle করে: spike-এর সময় cold-start cost compound করে, ছোট thermal label-এ raster barcode degrade করে, এবং Chromium version বদলালে font rasterisation drift করে, তাই “byte-identical reprint” অসম্ভব।

gPdf কেন fit করে

4×6 thermal label ছোট (203 dpi-তে 576 × 864 pixel), low-element-count (text block + 1-2 barcode + optional carrier logo), এবং high-volume (mid-size 3PL প্রতিদিন 50K-500K render করে)। gPdf এই workload-এর জন্য তৈরি। Renderer:

  1. Layout একবার compile করে — page coordinate, font cascade এবং barcode geometry request time-এ resolve হয়, browser layout engine দিয়ে নয়।
  2. প্রতিটি barcode vectorises করে — module সরাসরি PDF stream-এ draw হয়, তাই 30 mm-wide GS1-128 203 dpi বা 600 dpi-তে clean read করে, আপনার end-এ কোনো DPI-aware rasterisation logic দরকার হয় না।
  3. NotoSans CJK + Latin embed করে — একই payload Chinese carrier-name ঠিকভাবে render করে, render container-এ font provision করতে হয় না।

আমাদের reference workload-এ (উপরের sample-এর 1K invocation, EU-WEST) p99 flat 8 ms, single isolate একটি label render করেছে নাকি 10K label render করেছে তাতে ফারাক নেই।

Volume + cost math

একটি typical mid-size 3PL প্রায় 50K label/day = ~1.5M/month চালায়। Basic plan (5/month for 100K pages, 0.00005 per page overage)-এ হিসাব:

1.5M pages × $0.00005       = $75.00 in overage
+ Basic plan base            =   $5.00
─────────────────────────────────────
total                         = $80.00 / month

একই workload Puppeteer-on-Lambda-তে typical Lambda concurrency setting অনুযায়ী $200-400/month range-এ যায়, peak সময়ের cold-start tax ধরার আগেই।

Black Friday: একটি worked example

Peak spike হলো সেই workload যেখানে edge rendering-এর মূল্য সবচেয়ে স্পষ্ট। একটি retail customer Black Friday-র প্রথম ঘণ্টায় normal label volume-এর 200% চালালে — ধরা যাক 60 minute-এ 100K label, average 1.7K label/minute এবং peak burst 5K/minute — কোনো cold-start tax ছাড়াই এক Cloudflare Workers region pool-এর ভিতরে complete হয়। একই workload average traffic মাপের Puppeteer warm pool-এ burst-spawned container-এর ওপর 1.5-2.5 s cold-start তৈরি করে, আর warehouse pickup desk তার প্রতিটি delay অনুভব করে।

এরপর কোথায় দেখবেন