oci-dotnet-sdk
oci-dotnet-sdk copied to clipboard
OCI Streaming | Group Cursor | Clarification on Partition Assignment When Only One Consumer Instance is Present in Group
Hi Team,
We’re integrating OCI Streaming using the .NET SDK and following the consumer group model. We would like clarification regarding how partitions are assigned when only one consumer instance is present in a consumer group, but the stream has multiple partitions (e.g., 4, 8, or more).
Specifically, we want to confirm the following behavior:
When a single consumer instance (with a unique instance Name and associated group Name) is created via the Group Cursor API:
- Will OCI assign all partitions to this single consumer?
- Will the consumer receive messages in a round-robin or interleaved fashion across the partitions?
- Are there any caveats or recommended limits when using a single consumer instance to read from many partitions?
Observed Behavior in POC :
- We did a proof-of-concept (POC) by running a job for 10 minutes:
- This job creates a group cursor and then enters a loop, fetching messages and processing them every 10–20 seconds.
- The fetch loop continues for the full 10-minute duration.
- We noticed that:
- Sometimes all partitions were assigned to the consumer and messages from all were received.
- But in other runs, only a subset of partitions seemed to be assigned and processed throughout the cycle.
This raises the question: Is there a guarantee that OCI will allocate all available partitions to a single active group member (if only one exists)?
We are asking this to confirm:
- If this single-consumer pattern is production-safe for low-throughput cases.
- If there’s any hidden limitation or retry behavior we should be aware of while fetching from multiple partitions with a single group member.