Google Zanzibar
Định nghĩa
Google Zanzibar là distributed authorization infrastructure của Google, dùng relation tuple, namespace policy và consistency token để trả lời permission checks ở quy mô rất lớn.
Cách hiểu bằng lời của tôi
Zanzibar là ví dụ kinh điển cho bài toán: authorization vừa phải nhanh, vừa phải đúng, vừa phải global. Nó không nhúng logic quyền vào từng service; nó cho service mô hình hóa quan hệ, lưu tuple, rồi gọi một hệ authorization chung để check quyền với freshness phù hợp.
Thành phần đáng nhớ
- Permission Tuple: dữ liệu quan hệ
object, relation, user. - Namespace/config: định nghĩa relation và rule kế thừa.
- Userset rewrite: union/intersection/exclusion để suy ra quyền.
- Authorization Consistency Token: token timestamp giúp check không dùng dữ liệu quá cũ.
- Cache + request dedup: giảm hotspot khi nhiều check giống nhau.
- Denormalized group index: tăng tốc membership cho group lồng sâu.
Trade-off
- Stale reads nhanh cho common case; fresh reads đắt hơn vì cần coordination xa hơn.
- Write chậm hơn read vì phải giữ consistency.
- Shared auth service cần quota/isolation để client nóng không làm ảnh hưởng client khác.