Sau 3 tháng phát triển, chúng tôi tự hào giới thiệu WebBuilder v2.0 — phiên bản được viết lại hoàn toàn với tốc độ xử lý ảnh nhanh hơn 4-8 lần so với phiên bản cũ.
Thay đổi kiến trúc
Phiên bản cũ sử dụng PHP + GD library để xử lý ảnh. Phiên bản mới dùng:
- Node.js 20 LTS — Async I/O, xử lý đồng thời tốt hơn
- Sharp (libvips) — Engine ảnh nhanh nhất thế giới
- BullMQ + Redis — Queue production-grade
- PostgreSQL 16 — JSONB indexing, native ENUM
Benchmark so sánh
Xử lý 100 ảnh 2000x2000px
PHP + GD (v1.x): 187 giây PHP + Imagick (v1.x): 94 giây Node + Sharp (v2.0): 28 giây ← nhanh gấp 6.7x
Generate 1000 thiệp mời
v1.x (PHP sync): 18 phút v2.0 (Node + BullMQ): 3 phút 40 giây ← nhanh gấp 5x
Tốc độ cải thiện đáng kinh ngạc. Sự kiện 2000 khách mà team vẫn kịp generate và gửi thiệp trong buổi chiều.
Tính năng mới
- Live preview — Text đổi realtime trên canvas khi gõ
- Split ZIP — Tải QR và Card trong 2 file riêng
- Worker watchdog — Auto retry khi job bị stuck
- Rate limit multi-key — Chặn spam theo IP + user
- Event lifecycle — State machine draft → generating → ready
Migration path
User cũ sẽ được migrate tự động. Dữ liệu được backup trước khi chuyển sang v2. Quá trình migration:
# Backup
pg_dump webbuilder_v1 > backup.sql
# Run migration
npm run migrate:v2
# Verify
npm run test:parity
Toàn bộ data được migrate với 0% drift sau khi chạy burn-in 72h.