Polling, Long polling, SSE và WebSocket là gì? Phân biệt 4 cách làm tính năng realtime
Polling, long polling, SSE hay WebSocket? Hiểu bản chất từng cách qua mạch tiến hoá vấn đề → giải pháp, có sơ đồ, code mẫu và bảng chọn nhanh.
Ghi chép về lập trình, Laravel, hạ tầng và những bài học thực tế từ các dự án.
Polling, long polling, SSE hay WebSocket? Hiểu bản chất từng cách qua mạch tiến hoá vấn đề → giải pháp, có sơ đồ, code mẫu và bảng chọn nhanh.
Callback là gì, webhook khác callback ra sao, polling dùng khi nào? Giải thích bản chất qua ví dụ tích hợp cổng thanh toán, có sơ đồ minh hoạ dễ hiểu.
tập trung vào những thứ bạn sẽ dùng hằng ngày — cách cho Claude đọc file, các lệnh / quan trọng, và cách quản lý context để không cháy token. Phần lớn nội dung áp dụng cho Claude Code (CLI/desktop), nơi Claude thực sự đọc/sửa file trong dự án của bạn.
Tìm hiểu Idempotency Key là gì, tại sao nó quan trọng trong payment processing và API design, cách implement với Laravel + MySQL/Redis, và các best practices từ Stripe, PayPal. Bài viết bao gồm ví dụ thực tế, sequence diagram, và code mẫu production-ready.
Circuit Breaker Pattern là một resilience pattern quan trọng trong hệ thống phân tán, giúp ngắt kết nối tự động khi dependency liên tục fail — tránh cascading failure, bảo vệ resource pool, và cho phép hệ thống tự phục hồi. Bài viết giải thích chi tiết 3 trạng thái (Closed → Open → Half-Open), so sánh có/không có Circuit Breaker, cách implement trong Laravel/PHP, và các config thực tế.
Tool orchestrator cho multi-container app. Một file docker-compose.yml định nghĩa toàn bộ stack: app, nginx, mysql, redis. Hiểu services, volumes, networks, depends_on, environment.
Không dùng docker-compose, chạy Laravel app bằng docker run: PHP-FPM container + Nginx container + MySQL container. Kết nối qua Docker network. Mục đích: hiểu docker-compose làm gì đằng sau.
Container = Image + writable layer. Container là ephemeral (tạm thời) — dữ liệu mất khi xóa. Hiểu docker run, exec, stop, rm, logs, inspect.
2 loại: Named volume (mysql_data:/var/lib/mysql — Docker quản lý, dùng cho DB) và Bind mount (.:/var/www/html — map trực tiếp folder host, dùng cho source code dev).
Dockerfile giống như một "recipe" — mỗi bước (instruction) thêm một lớp nguyên liệu lên trên lớp trước. Docker cache từng layer, nên thứ tự lệnh quyết định tốc độ build.