დაყოფის სტრატეგიის არჩევა — თუ როგორ ნაწილდება ხდებები თემის დანაყოფებში — მნიშვნელოვანი 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
