Azure / Azure/azure-functions-host

IAsyncCollector capability per binding type is undocumented

Open
#1,945 1 comment 0 reactions 0 assignees View on GitHub
docs
Dominant language
C#
Stars
2k
Forks
482
Avg merge
2d 12h
Merged PRs (30d)
38

Description

The IAsyncCollector implementations/capabillities per binding type are undocumented. I think this should be fixed. Below is my private story that deals with the ServiceBus binding and its surprisingly lacking IAsyncCollector implementation.

If I understand the code correctly after exploring the issue, the binding result/implemetation of IAsyncCollector for a ServiceBus binding is MessageSenderAsyncCollector. This class has an empty implementation for IAsyncCollector#FlushAsync, where it returns a task with an immediately available result.

This means or at least implies that there is no support for batching of messages sent to a service bus.
In fact, if the programmer doesn't explicitly await the result of the Task returned from AddAsync in his own code, it is possible the message will never be sent.

It is true, that the interface allows and sort of documents the possibility, but without exploring the code of the WebJobs SDK, there is no way for me know what is the status of the support for IAsyncCollector for each binding type.

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the IAsyncCollector interface and the MessageSenderAsyncCollector implementation mentioned in the issue, then inspect the binding types to determine their collector capabilities. Document the supported behavior for each binding type, including ServiceBus batching and AddAsync completion expectations; done means users can identify these capabilities without reading the WebJobs SDK source.

Written by the indexing model from the issue text.

Assessment

Tech stack
azure, csharp
Domain
backend, documentation
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.