[SERVER-51765] Create a Futures-compatible Stream/Channel abstraction Created: 20/Oct/20 Updated: 09/Feb/23 |
|
| Status: | Backlog |
| Project: | Core Server |
| Component/s: | Internal Code |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | New Feature | Priority: | Major - P3 |
| Reporter: | Matthew Saltz (Inactive) | Assignee: | Backlog - Service Architecture |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | servicearch-wfbf-day | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Assigned Teams: |
Service Arch
|
| Participants: | |
| Story Points: | 5 |
| Description |
|
This ticket is to implement a producer-consumer queue with asynchronous blocking on an empty queue. Fairly often, we have found cases in sharding where it would be helpful to have a blocking producer-consumer queue, but need it to be used in a context where it's not acceptable to block a thread. This creates the need for ungainly workarounds. We should come up with an abstraction (probably based on futures) that handles this. Example idea (rough sketch):
Things to consider:
I think whether we call this a stream or a channel depends on the above considerations. Acceptance Criteria: Design a class for Create a Futures-compatible Stream/Channel abstraction by answering the questions above. |
| Comments |
| Comment by Lauren Lewis (Inactive) [ 24/Feb/22 ] |
|
We haven’t heard back from you for at least one calendar year, so this issue is being closed. If this is still an issue for you, please provide additional information and we will reopen the ticket. |