Partition key quyết định message vào partition nào (hash(key) % numPartitions).
- Chọn key sai dẫn đến: hotspot (một partition bị overload), hoặc mất ordering (message liên quan vào partition khác nhau). Nguyên tắc chọn key: chọn field có cardinality cao và phân phối đều —
user_id,order_id,device_idtốt hơncountry_codehaystatus. - Key phải là field mà ordering quan trọng trong context của nó: tất cả event của cùng
order_idphải theo thứ tự → dùngorder_idlàm key. Tránh hotspot: nếu key phân phối không đều (một số user_id hoạt động cực nhiều), thêm random suffix:user_id + '-' + random(0, N)— nhưng sẽ mất ordering global per user. - Kỹ thuật khác: key salting
key + timestamp_bucket— partition thay đổi theo thời gian. - Tăng số partition cũng giúp giảm hotspot nhưng không giải quyết root cause nếu key quá skewed.