विभाजन कौशल्य निवडणे — इव्हेंट्स कसे एका विषय (topic) च्या विभाजनांमध्ये वितरित केले जातात — हा एक महत्वाचा Kafka डिজाइन निर्णय आहे जो क्रम, समांतरता, आणि भार वितरण यांना प्रभावित करतो. विभाजन की आणि संख्या काळजीपूर्वक निवडल्या पाहिजेत.
विभाजन कसे कार्य करते
A producer's message goes to a partition based on:
→ with a KEY → hash(key) → determines the partition (same key → same partition consistently)
→ no key → distributed (round-robin / sticky) across partitions
→ the KEY choice determines ordering and distribution
विभाजन की निवडणे
The KEY determines two crucial things:
✓ ORDERING → all events with the same key go to the same partition → ordered together
(e.g. key=userId → all of a user's events are ordered)
✓ DISTRIBUTION → keys should spread evenly across partitions (good cardinality) → balanced load
PITFALLS:
✗ LOW cardinality / skewed keys → HOT partitions (one partition overloaded) → bottleneck
✗ Wrong ordering scope → if you need per-X ordering, key by X (but that limits parallelism
within X)
→ choose a key giving the ORDERING you need AND EVEN distribution
