workload ของ shipping-label ในหนึ่งย่อหน้า
ทุก order สร้าง PDF หนึ่งไฟล์ ทุก PDF ถูกพิมพ์หนึ่งครั้งบน thermal printer และ failure mode ถ้าคุณช้าไม่ใช่ “หน้าโหลดช้า” แต่คือ “จุดรับสินค้าของคลังสินค้าต้องรอ API เรนเดอร์ฉลากของคุณ” Shipping เป็นงานที่ p99 latency คือ product metric สำคัญที่สุด output ต้อง deterministic เพราะ reprint เป็นเรื่องปกติ และคุณภาพบาร์โค้ด — วัดด้วย tolerance ของ GS1 X-dimension ไม่ใช่ pixels — เป็นตัวตัดสินว่า scanner อ่านฉลากได้ตั้งแต่ครั้งแรกหรือไม่
PDF stack ที่ใช้ headless browser มักรับมือสามเรื่องนี้พร้อมกันได้ยาก: cold-start cost ทบกันตอน spike, raster barcodes เสื่อมคุณภาพบนฉลาก thermal ขนาดเล็ก และ font rasterisation drift ระหว่าง Chromium versions ทำให้ “byte-identical reprint” เป็นไปไม่ได้
ทำไม gPdf ถึงเหมาะ
ฉลาก thermal 4×6 มีขนาดเล็ก (576 × 864 pixels ที่ 203 dpi), จำนวนองค์ประกอบไม่มาก (text blocks + บาร์โค้ด 1-2 ตัว + optional carrier logo) และปริมาณสูง (3PL ขนาดกลางเรนเดอร์ 50K-500K ใบต่อวัน) นี่คือ workload ที่ gPdf ถูกสร้างมาเพื่อรองรับ renderer:
- Compile layout ครั้งเดียว — page coordinates, font cascades และ barcode geometry ถูก resolve ตอน request ไม่ผ่าน browser layout engine
- Vectorise ทุกบาร์โค้ด — modules ถูกวาดตรงลงใน PDF stream ทำให้ GS1-128 กว้าง 30 มม. อ่านได้ชัดที่ 203 dpi หรือ 600 dpi โดยไม่ต้องมี DPI-aware rasterisation logic ในฝั่งคุณ
- ฝัง NotoSans CJK + Latin — payload เดียวกันเรนเดอร์ชื่อ carrier ภาษาจีนได้ถูกต้องโดยไม่ต้อง provision fonts ใน render container
p99 คงที่ที่ 8 ms ใน reference workload ของเรา (1K invocations ของตัวอย่างด้านบนบน EU-WEST) ไม่ว่าจะเป็น isolate ที่เรนเดอร์ฉลากใบเดียวหรือ 10K ใบแล้วก็ตาม
คำนวณ volume + cost
3PL ขนาดกลางทั่วไปทำงานประมาณ 50K labels/day = ~1.5M/month บน Basic plan (5/month สำหรับ 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 มักอยู่ในช่วง $200-400/month ตามค่า concurrency ของ Lambda ทั่วไป ก่อนรวม cold-start tax ช่วง peak
Black Friday: ตัวอย่างคำนวณจริง
Peak spike คือ workload ที่ทำให้ edge rendering แสดงคุณค่าชัดที่สุด ลูกค้า retail ที่มี label volume สูงกว่าปกติ 200% ในชั่วโมงแรกของ Black Friday เช่น 100K labels ใน 60 นาที เฉลี่ย 1.7K labels/minute และ peak burst 5K/minute สามารถจบภายใน Cloudflare Workers region pool เดียวโดยไม่มี cold-start tax ส่วน workload เดียวกันบน Puppeteer warm pool ที่ sizing ตาม traffic เฉลี่ยจะเกิด cold-start 1.5-2.5 s บน containers ที่ถูก spawn ตอน burst และจุดรับสินค้าคลังสินค้าจะรู้สึกถึงทุกครั้ง
ควรอ่านต่อที่ไหน
- JSON Render API ครอบคลุมทุก field ที่ใช้ในตัวอย่างฉลากด้านบน
- เรื่องลึกของ barcode geometry อ่าน GS1-128 precision post
- กำลังแทนที่ iText label pipeline? อ่าน gPdf vs iText for logistics labels หรือ shipping-label TCO breakdown at 100K → 100M pages/month ฉบับเต็ม
- หากต้องเปรียบเทียบกับ stack ที่ใช้ Chromium อ่าน gPdf vs Puppeteer