Both kinds of group can read the same topic at once, each with its own progress, so the choice is per use case.
| Question | Consumer group | Share group |
|---|---|---|
| Order of a key's records | Kept within a partition | Not kept |
| Most useful consumers | One per partition | Up to 200 by default |
| Progress tracking | One offset per partition | Per record, with delivery counts |
| Retry or skip one record | Your own retry topics | RELEASE or REJECT |
| Exactly-once with transactions | Yes | No |
| BookNest uses it for | Analytics, lakehouse loads, refunds | Packing, e-mail, image jobs |
Use a consumer group whenever order or state per key matters, or when you need transactions. Use a share group for independent jobs whose volume changes faster than you can repartition a topic, or where one bad job must not block the rest. In BookNest the same order_paid events feed both: the analytics consumers in order, the packers as a queue.