Azure / Azure/azure-sdk-for-rust
[Service Bus] Add a session processor
- Dominant language
- Rust
- Stars
- 884
- Forks
- 365
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 109
Description
## Summary
There is no session aware processor.
## Motivation
`ServiceBusSessionProcessor` adds session handling on top of the processor. Its options carry `MaxConcurrentSessions`, `MaxConcurrentCallsPerSession`, `SessionIdleTimeout`, and an explicit `SessionIds` list, and it raises session opened and session closed callbacks.
It is the last feature in the graph because it needs both the session receiver and the processor.
## Proposal
- Add a session processor over the session receiver and the processor.
- Support a bounded number of concurrent sessions and a bounded concurrency inside each session.
- Release a session when it goes idle, then accept the next one.
- Renew the session lock as well as the message lock.
## Dependencies
Blocked by:
- #4949 [Service Bus] Add session support
- #4951 [Service Bus] Decide on and add a processor
Sub-issue of #4934.
Contributor guide
Research direction
Start by reading the session support work in #4949 and the processor decision in #4951, since this issue is blocked by both. Then trace the session receiver and processor APIs. Done means a session processor with bounded session and per-session concurrency, idle-session release, session and message lock renewal, explicit session IDs, and opened/closed callbacks.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure, rust
- Domain
- cloud, distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100