Azure / Azure/azure-sdk-for-rust

[Service Bus] Add a session processor

Open
#4,952 0 comments 1 reaction 0 assignees View on GitHub
Client feature-request Service Bus
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.