Optimistic update: nhanh nhưng phải rollback được
Optimistic update làm UI phản hồi trước khi server xác nhận. Inertia v3 hỗ trợ optimistic page-prop update và rollback khi request fail, nhưng không phải mutation nào cũng phù hợp.Case tốt: Like
Case tốt: Todo nhẹ
Không nên optimistic khi nào?
- Thanh toán hoặc hoàn tiền.
- Booking có contention cao.
- Mutation phụ thuộc inventory/limit/quota.
- Action có nhiều downstream side effect.
- User cần biết chắc server đã commit trước khi tiếp tục.
Checklist trước khi bật optimistic
- Có thể tính optimistic state chỉ từ current props + input không?
- Nếu fail, rollback có đưa UI về trạng thái dễ hiểu không?
- Nếu server normalize dữ liệu khác dự đoán, response cuối có overwrite đúng không?
- Double-click/concurrent action có làm counter sai tạm thời không?
- Mutation có giá trị tài chính hoặc invariant nghiêm ngặt không? Nếu có, ưu tiên confirmed flow.
Pattern production: optimistic + aggregate reconciliation
Ví dụ toggle active Product làm thay đổi cả row và dashboard count:stats.active không reconcile, UI sẽ tự mâu thuẫn.